Android线程问题

时间:2011-04-19 14:40:26

标签: android

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;
    }

}

1 个答案:

答案 0 :(得分:1)

您的AsyncTask代码看起来不错。

线程通常放在池中,以便在需要时可以重用它们。这有时比删除和稍后重新创建它们更快。

所以总的来说:别担心。 AsyncTask很好,所以你不必担心。 我在Zwitscher中广泛使用AsyncTasks,从未遇到任何问题。