Я пытаюсь запустить одновременно две 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, я обновил проблему descr. соответственно. У меня нет этой проблемы с HTC Hero под управлением Android 2.1. Хммм...