我正在尝试同时运行两个AsyncTask。(平台是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,我更新了问题描述。相应地。对于运行Android 2.1的HTC Hero,我没有这个问题。嗯...