ProgressDialog没有响应

时间:2011-12-02 17:55:47

标签: java android

大家好,为什么当我添加ProgressDialog时它变得无法响应

            ProgressDialog dialog = ProgressDialog.show(AppsInspectorActivity.this, "", 
                    "Scanning package " + pkgInfo.packageName, true);
            dialog.setCancelable(true);
            dialog.show();

高于Log.v(TAG, "Scanning package " + pkgInfo.packageName);

private List<PackageInfo> getAdPackages() {

[重磅]

    return new ArrayList<PackageInfo>(adPackages);
}

}

3 个答案:

答案 0 :(得分:1)

ASyncTask是要走的路。只是覆盖doInBackground()。并使用Handler类来停止(dismiss())progressDialog。

http://www.helloandroid.com/tutorials/using-threads-and-progressdialog 似乎很有用......

http://www.vogella.de/articles/AndroidPerformance/article.html 非常深入的版本..

答案 1 :(得分:0)

你能定义什么不响应意味着什么?对话框是否从不显示,或按下后退时根本不解除?操作完成后,尝试使用以下命令关闭对话框:

dialog.dismiss()

答案 2 :(得分:0)

所以我要猜测一下这个问题,如果你说进度对话框冻结了,应用程序变得没有响应,那么你似乎还没有完成对话框设计代表的长期过程。默认情况下,所有代码都在UI线程上运行,因此如果您的进程需要很长时间,则屏幕不会更新,并且用户会收到死亡通知(未响应)。您应该根据onProgressUpdate方法的需要对长期过程进行线程化(最好是在异步任务中)并将更新发布到进度对话框。