您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

无法在AsyncTask内未为ProgressDialog调用Looper.prepare()的线程内创建处理程序

无法在AsyncTask内未为ProgressDialog调用Looper.prepare()的线程内创建处理程序

方法show()必须从被调用用户界面(UI)螺纹,而doInBackground()在不同的螺纹,其是主要的原因,运行AsyncTask被设计。

你必须调用show()无论是在onProgressUpdate()onPostExecute()

例如:

class ExampleTask extends AsyncTask<String, String, String> {

    // Your onPreExecute method.

    @Override
    protected String doInBackground(String... params) {
        // Your code.
        if (condition_is_true) {
            this.publishProgress("Show the dialog");
        }
        return "Result";
    }

    @Override
    protected void onProgressUpdate(String... values) {
        super.onProgressUpdate(values);
        connectionProgressDialog.dismiss();
        downloadSpinnerProgressDialog.show();
    }
}
其他 2022/1/1 18:15:46 有482人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶