Android:活动暂停时未关闭进度对话框
我在处理对话时遇到了一个小问题,suer按了home键 我创建ProgressDialog,如下所示: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);
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();
}