Dialog Leak 问题

来源:互联网 发布:涉税软件下载 编辑:程序博客网 时间:2024/05/31 19:27

我们经常在 APP 中网络加载时,会显示一个加载 ProgressDialog ,然后数据加载成功之后,我们一般会将 ProgressDialog dismiss()这是正常的情况,不会有任何问题。

我最近在我的项目中发现,进行会出现 dialog leak 的字眼,出现的时机是当我在加载数据的时候,我关闭了当前 Activity 或者跳转到其他 Activity ,那么此时就会出现这种情况。

在 Activity 发生跳转的时候,或者按下 home 键之后,会调用当前 Activity 中的 onSaveStateInstance() 方法,这个方法是用于在 Activity 被回收时做的一些资源保存的工作。那么为什么会被调用呢?
简单理解,因为当 Activity 发生跳转之后,或者按下 home 键之后,系统并不知你什么时候回到这个 Activity ,因此这个方法会被系统调用。

一般会在 BaseActivity 中对 ProgressDialog 进行 dismiss 操作。

@Overrideprotected void onSaveInstanceState(Bundle outState) {    super.onSaveInstanceState(outState);              if(mLodingProgressDialog!=null)        //onSaveInstanceState 调用 dismiss 防止内存泄漏        mLodingProgressDialog.dismiss();    }}
1 0
原创粉丝点击