DalvikVM[localhost:8604]
Thread [<1> main] (Running)
Thread [<7> Binder Thread #2] (Running)
Thread [<6> Binder Thread #1] (Running)
Thread [<8> AsyncTask #1] (Running)
Thread [<9> Binder Thread #3] (Running)
Thread [<10> Binder Thread #4] (Running)
Thread [<11> AsyncTask #2] (Running)
Thread [<12> AsyncTask #3] (Running)
在运行我的应用程序时,我在调试窗口中看到了这一点。
我想知道这是对的吗?是否应该运行这么多任务。
例如Thread [<8> AsyncTask #1] (Running)
此任务从Web服务器下载文件。当任务完成时,这不会从上面的列表中消失吗?
我没有正确地结束任务吗?
Tabletask = new CreateTablesTask();
Tabletask.execute();
class CreateTablesTask extends AsyncTask<Object, Integer, Boolean> {
ProgressDialog pleaseWaitDialog;
@Override
protected void onCancelled() {
pleaseWaitDialog.dismiss();
}
@Override
protected void onPreExecute() {
pleaseWaitDialog = ProgressDialog.show(Activity.this, "Test", "Downloading", true, true);
pleaseWaitDialog.setOnCancelListener(new OnCancelListener() {
public void onCancel(DialogInterface dialog) {
}
});
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
protected Boolean doInBackground(Object... arg0) {
//Some code in here
return null;
}
protected void onPostExecute(Boolean result) {
PleaseWaitDialog.dismiss();
return;
}
}
答案 0 :(得分:1)
您的AsyncTask代码看起来不错。
线程通常放在池中,以便在需要时可以重用它们。这有时比删除和稍后重新创建它们更快。
所以总的来说:别担心。 AsyncTask很好,所以你不必担心。 我在Zwitscher中广泛使用AsyncTasks,从未遇到任何问题。