由于 Activity 重新创建,Progressdialog 无法关闭

Posted

技术标签:

【中文标题】由于 Activity 重新创建,Progressdialog 无法关闭【英文标题】:Progressdialog fails to get dismissed because of Activity recreate 【发布时间】:2017-04-10 00:59:02 【问题描述】:

我有一个对话框,它在 Activity 创建期间 syas Loading 和一个 dialog.dismiss 稍后在可运行文件内的代码中。 现在在 Activity onCreate 的某个时刻,我的 Activity 被重新创建以获取有关请求权限的信息。问题是在可运行文件中没有触发 dialog.dismiss。对话框永远不会消失。

 dialog = ProgressDialog.show(TripActivity.this, "", "Loading...");

final Handler handler1 = new Handler();

                handler1.post(new Runnable() 
                    @Override
                    public void run() 

                   //     b=oldvalue;
                     //   mListener.doYourWork(id_share);
                        // Post again 16ms later.
                        handler1.postDelayed(this, 5000);


                        dialog.dismiss();

【问题讨论】:

【参考方案1】:

每次调用 onCreate 时,ProgressDialog.show() 行都会返回一个新的 ProgressDialog 引用。

在尝试再次创建之前,您应该检查dialog 是否为空。另外,记得在活动调用onDestroy时关闭它。

【讨论】:

以上是关于由于 Activity 重新创建,Progressdialog 无法关闭的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3 Core Data Migration with Progress Indicator 或 Activity Spinner

在 Activity 重新创建时如何确定 Fragment 恢复?

3.4 重新创建 Activity

ViewModel组件

始终重新创建具有 launchMode singleTop 或 singleTask 的 Activity

Activity 被杀死并重新创建后,碎片仍然存在