Im пытается выполнить некоторый параллон кода с потоками, используя задачу async. Но почему-то в android 4.2.2 не работает .... ....................AsyncTask in android 4.2.2
У меня есть этот код, который находится в основной класс:
new XmlDownloader();
task=new SendTask().execute("");
и следующие классы:
private class SendTask extends AsyncTask<String,String,String>{
@Override
protected void onPreExecute(){
}
@Override
protected String doInBackground(String...strings){
while(true){
Log.w("outside", "hello");
}
}
return strings[0];
}
@Override
protected void onPostExecute(String country){
}
}
и
public class XmlDownloader extends Activity {
public XmlDownloader(int pos) {
DownloaderTask task = new DownloaderTask();
task.execute("");
}
private String downloadXml(String s,int pos1) {
return null;
}
private class DownloaderTask extends AsyncTask<String, Void, String> {
public DownloaderTask() {
}
@Override
// Actual download method, run in the task thread
protected String doInBackground(String... params) {
while(true){
Log.w("down", "asdasdasssasdasdasdasd");
if(isCancelled())
return null;
};
return null;
}
@Override
// Once the image is downloaded, associates it to the imageView
protected void onPostExecute(String bitmap) {
}
}
}
Я знаю его в то время как цикл, но голые с меня moment.In андроид 2.3.3 на LogCat показывает эту последовательность
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("outside", "hello");
Log.w("outside", "hello");
Log.w("down", "asdasdasssasdasdasdasd");
но андроид 4.2.2 показывает только
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Log.w("down", "asdasdasssasdasdasdasd");
Любые идеи, почему темы не работают?
Что именно вы подразумеваете под словом "не работает"? – asgs
Последовательность неверна. Это похоже на последовательное выполнение, и я хочу выполнить параллельное выполнение.Что странно, потому что async создает потоки. Как я сказал в 2.3.3, отлично работает – Tony
Посмотрите на мой ответ, я его отредактировал, и вы можете найти ответ на вопрос, почему это происходит ... сначала попробуйте запустить второй поток, и вы увидите напечатанную только другую строку. –