Activity onDestroy() 调用研究 内存泄漏
来源:互联网 发布:图像识别算法工程师 编辑:程序博客网 时间:2024/06/15 14:35
http://blog.csdn.net/z1074971432/article/details/10517449
http://blog.csdn.net/z1074971432/article/details/10517449
http://blog.csdn.net/z1074971432/article/details/10517449
http://blog.csdn.net/z1074971432/article/details/10517449
http://blog.csdn.net/z1074971432/article/details/10517449
Activity onDestroy() 调用研究
版权声明:本文为博主原创文章,未经博主允许不得转载。
刚刚一个BUG让我发现,如果 activity 实现了一个回调接口,然后使用 this 设置给需要回调接口的方法,这种应用场景比较常见,最常见的就是实现 onClickListener 接口,然后 findViewById().setOnClickListenr(this)
如果,这个回调接口设置到了一个静态对象(单例模式),当 activity finish() 的时候(按返回键,回到桌面),则activity 不会被调用 onDestroy() ,原因可能是 activity 对象还在被引用!
此时你再点击图标回到应用,onCreate() 再次调用!
很明显,如果你把资源释放放在了 onDestroy() 里面,就会导致内存泄露!
那有没有解决办法呢?有的
你可以在 onPause() 方法里面判断 isFinishing() ,正常调用 finish() 后 activity 的回调过程是 onPause、onStop、onDestroy ,倘若出现上面的情况,只到 onPause!但是 isFinishing() 标志还是为 true !你可以释放资源了。
我们来看下 onDestroy 的官方解释:
- Activity onDestroy() 调用研究 内存泄漏
- Activity onDestroy() 调用研究
- Activity onDestroy() 调用研究
- Activity onDestroy() 调用研究
- 关于Activity调用Ondestroy()方法之后内存管理器为什么没有释放占用资源
- Activity调用Ondestroy()方法之后内存管理器为什么没有释放占用资源
- Android内存泄漏研究
- Android内存泄漏研究
- Android内存泄漏研究
- Android内存泄漏研究
- Android内存泄漏研究
- 内存泄漏问题研究
- 关于三星设备 Activity.onDestroy() 被调用。显示“开发者选项”
- android 为什么不调用onDestroy方法关闭activity
- 内存泄漏分析 mat 使用 activity泄漏
- 关于“调用finish() 对应的activity却不调用onDestroy”的体会
- 导致IE浏览器内存泄漏的研究
- 关于android内存泄漏的研究
- 基于Zxing修改定位点(码眼)的颜色
- hdu3671 Boonie and Clyde (Tarjan求割点)
- Python language record---Chapter 2
- java参数传递
- 多线程学习总结(九)——线程安全之线程间的通信
- Activity onDestroy() 调用研究 内存泄漏
- Android Studio下Svn忽略文件配置的几种方法
- 设计模式学习笔记-适配器模式
- 【Linux 内核网络协议栈源码剖析】accept 函数剖析
- int转byte与补码的关系
- Java 链表的定义与使用
- android studio 改变logcat里字体大小
- WEB应用程序状态管理
- 安徽省宣城市太阳村花园组