Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:活动暂停时未关闭进度对话框_Android_Progressdialog - Fatal编程技术网

Android:活动暂停时未关闭进度对话框

Android:活动暂停时未关闭进度对话框,android,progressdialog,Android,Progressdialog,我在处理对话时遇到了一个小问题,suer按了home键 我创建ProgressDialog,如下所示: runOnUiThread(new Runnable() { public void run() { progressDialog = ProgressDialog.show(this, "",this.getResources().getString( R.string.AProgressMessage), true);

我在处理对话时遇到了一个小问题,suer按了home键

我创建ProgressDialog,如下所示:

runOnUiThread(new Runnable() {
            public void run() {
                progressDialog = ProgressDialog.show(this, "",this.getResources().getString( R.string.AProgressMessage), true);
            }
        });
当我下载完互联网上的东西后就把它打发掉

progressDialog.dismiss();
问题是,当用户按home键时,有时调用Disclose的线程会被终止,但对话框永远不会被终止。。。因此,当应用程序重新启动时,它会卡在ProgressDialog后面


有什么想法吗?

为什么线程会被终止

如果Android系统认为内存不足,它只会杀死整个进程,而不会杀死单个线程。您确定总是调用
progressDialog.disease()
,即使线程因未捕获的异常而停止(例如),也要这样做吗


顺便说一句,您可能应该使用AsyncTask,而不是自己进行线程管理,请参见。

我知道这个线程已经很旧了,但我认为我的答案可以帮助很多人

活动类有一个
onPause
方法。因此,如果您从正在暂停的同一活动调用该对话框,则可以使用
onPause
方法缩小该对话框

将对话框变量设为全局变量,并按如下方式定义
onPause
方法:

@Override
public void onPause(){
    super.onPause();
    if(dialog!=null)
        dialog.dismiss();
}