-1

我使用ProgressDialogThread 或AsyncTask.

和线程AsyncTask工作。但在完成工作ProgressDialogDismiss 并得到 force close 。

onCreate()我称之为

new myAsyncTask().execute();

异步任务

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

4 回答 4

1

你必须 onProgressUpdate(Integer...)打电话doInBackground()

请参阅此文档

于 2013-06-13T12:41:11.590 回答
1

doInBackground你调用startProgram,它显示Toast- 这就是导致异常的原因。 Toasts必须从 UI 线程创建。

于 2013-06-13T13:14:48.610 回答
0

你不能Toast在你的doInBackground(). Toast需要在 UI 线程上运行。

于 2013-06-13T13:14:39.480 回答
0

runOnUIThread在你的 doInBackground().

于 2013-06-13T14:10:51.020 回答