java - AsyncTask 在后台运行时看不到 ProgressDialog

标签 java android android-asynctask progressdialog

我在我的应用程序中使用 AsyncTask 来下载网址。我在 onPreExecute() 上使用 ProgressDialog 来等待。 但在进程完成时我看不到 ProgressDialog,我暂时看到了它。想在下载时看到它而不是下载后看到它。 谁能帮我。 谢谢 我的代码是这样的:

private class loadMoreListView extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        // Showing progress dialog before sending http request
        pDialog = new ProgressDialog(SingleMenuItemActivity.this);
        pDialog.setMessage("Please Wait ...");
        pDialog.isIndeterminate();
        pDialog.setCancelable(false);
        pDialog.show();
    }

    protected Void doInBackground(Void... unused) {
        runOnUiThread(new Runnable() {
            public void run() {

           // do something for downloading

        }
        });

        return (null);
    }


    protected void onPostExecute(Void unused) {
        // closing progress dialog
        pDialog.dismiss();
    }
}

最佳答案

 runOnUiThread(new Runnable() {
            public void run() {
           // do something for downloading
        }

//在 runOnUiThread 中执行下载操作,这是错误的。 runOnUiThread 使“执行下载操作”在 UI 线程上运行,并且您的应用程序应该因 NetworkOnMainThreadException 崩溃,而您的应用程序运行在 Android 版本高于 GingerBread 的设备上。不同的是,它会阻塞 ui 线程,阻止他绘制进度条

关于java - AsyncTask 在后台运行时看不到 ProgressDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25752210/

相关文章:

android - 单击按钮时没有任何反应

android - 让 asynctask 加载位图时出现问题

java - 如何检查复选框是否已被选中

java - String.intern() 的垃圾收集行为

android - 通过电子邮件向某人发送签名的 apk 或未签名的 apk 是否更安全?

android - shouldOverrideUrlLoading 不起作用

android - 在服务类中显示 ProgressDialog

java - 如何禁用 RecyclerView 和 AsyncTask 中的按钮

java - 在不使用正则表达式的情况下在java中进行正则表达式匹配

Java 执行器服务 : should I put a lock before to use execute?