Я пытаюсь запустить две AsyncTasks одновременно. (Платформа - Android 1.5, HTC Hero.) Однако выполняется только первый. Вот простой фрагмент, описывающий мою проблему:
public class AndroidJunk extends Activity {
class PrinterTask extends AsyncTask<String, Void, Void> {
protected Void doInBackground(String ... x) {
while (true) {
System.out.println(x[0]);
try {
Thread.sleep(1000);
} catch (InterruptedException ie) {
ie.printStackTrace();
}
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new PrinterTask().execute("bar bar bar");
new PrinterTask().execute("foo foo foo");
System.out.println("onCreate() is done.");
}
}
Я ожидаю, что результат будет:
onCreate() is done.
bar bar bar
foo foo foo
bar bar bar
foo foo foo
И так далее. Однако я получаю следующее:
onCreate() is done.
bar bar bar
bar bar bar
bar bar bar
Вторая AsyncTask никогда не выполняется. Если я изменю порядок операторов execute (), вывод будет производить только задача foo.
Я упустил здесь что-то очевидное и / или делаю что-то глупое? Разве невозможно запустить две AsyncTasks одновременно?
Изменить: я понял, что данный телефон работает под управлением Android 1.5, я обновил описание проблемы. соответственно. У меня нет этой проблемы с HTC Hero под управлением Android 2.1. Хммм ...