小编Pur*_*der的帖子

检查是否可以安全地关闭对话框

在我的应用程序中,我在长时间运行的后台进程中显示一个对话框,这是一个模态.
android从后台任务返回时,该对话框被解除.

final ProgressDialog progressDialog = ProgressDialog.show(activity, "", "Doing something long running", true, true);

new Thread(new Runnable() {
    public void run() {
        someLongRunningCode(); // (not using AsyncTask!)

        activity.runOnUiThread(new Runnable() {
            public void run() {
                progressDialog.dismiss();
            }
        });
    }
}).start();
Run Code Online (Sandbox Code Playgroud)

但是,现在,当用户在后台进程仍在运行时旋转其设备时,将重新创建活动,因此,progressdialog将从活动中分离出来.
当长时间运行的过程完成后,android显然会尝试隐藏(现在已分离的)进度对话框,然后会导致异常:java.lang.IllegalArgumentException: View not attached to window manager.
有没有办法检查是否可以安全地关闭对话框?

编辑:或者更好的是,有没有办法将现有的对话框附加到新创建的活动?
一个新的克隆对话框也没问题.

java android

5
推荐指数
1
解决办法
1219
查看次数

标签 统计

android ×1

java ×1