最佳答案
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任务将产生输出。
我是否遗漏了一些明显的东西,或者做了一些愚蠢的事情?不可能同时运行两个asynctask吗?
编辑:我意识到问题手机运行Android 1.5,我更新了问题描述。相应的行动。运行Android 2.1的HTC Hero就没有这个问题。嗯…