ProgressDialog和线程

时间:2013-06-13 12:29:46

标签: android multithreading android-asynctask

我使用ProgressDialog与线程或AsyncTask

AsyncTask和线程工作。但是在完成工作时ProgressDialog解雇并使力量接近。

onCreate()我称之为

new myAsyncTask().execute();

的AsyncTask

private class myAsyncTask extends AsyncTask<Void, Void, String>
{

    ProgressDialog dialog;
    @Override
    protected void onPreExecute() {
        dialog = ProgressDialog.show(MainActivity.this, "", "Please Wait !",true,false);
    }
    @Override
    protected String doInBackground(Void... params) {
        startProgram();
        return "";  
    }
    @Override
    protected void onPostExecute(String result) {
        if (dialog.isShowing())
            dialog.dismiss();
    }
}

4 个答案:

答案 0 :(得分:1)

您必须在onProgressUpdate(Integer...)

中致电doInBackground()

请参阅此Doc

答案 1 :(得分:1)

doInBackground startProgram拨打Toast,显示Toasts - 这就是导致异常的原因。 必须从UI线程创建{{1}}。

答案 2 :(得分:0)

Toast中无法doInBackground()Toast需要在UI线程上运行。

答案 3 :(得分:0)

试试这个  runOnUIThread内的doInBackground()