Activity onDestroy() 调用研究
来源:互联网 发布:mac如何修改ppt格式 编辑:程序博客网 时间:2024/05/21 22:43
一个BUG,如果 activity 实现了一个回调接口,然后使用 this 设置给需要回调接口的方法,这种应用场景比较常见,最常见的就是实现 onClickListener 接口,然后 findViewById().setOnClickListenr(this)
如果,这个回调接口设置到了一个静态对象(单例模式),当 activity finish() 的时候(按返回键,回到桌面),则activity 不会被调用 onDestroy() ,原因可能是 activity 对象还在被引用!
此时你再点击图标回到应用,onCreate() 再次调用!
很明显,如果你把资源释放放在了 onDestroy() 里面,就会导致内存泄露!
那有没有解决办法呢?有的
你可以在 onPause() 方法里面判断 isFinishing() ,正常调用 finish() 后 activity 的回调过程是 onPause、onStop、onDestroy ,倘若出现上面的情况,只到 onPause!但是 isFinishing() 标志还是为 true !你可以释放资源了。
0 0
- Activity onDestroy() 调用研究
- Activity onDestroy() 调用研究
- Activity onDestroy() 调用研究
- Activity onDestroy() 调用研究 内存泄漏
- 关于三星设备 Activity.onDestroy() 被调用。显示“开发者选项”
- android 为什么不调用onDestroy方法关闭activity
- 关于“调用finish() 对应的activity却不调用onDestroy”的体会
- Android锁屏后主Activity的onDestroy方法被调用导致黑屏问题解决方案
- Android锁屏后主Activity的onDestroy方法被调用导致黑屏问题解决方案
- 关于Activity调用Ondestroy()方法之后内存管理器为什么没有释放占用资源
- Activity调用Ondestroy()方法之后内存管理器为什么没有释放占用资源
- 手机转屏时,Activity的onDestroy和onCreate方法会被调用
- Activity 的onStop以及onDestroy
- 在设置了android:parentActivityName后,点击子Activity返回键,父Activity总会调用OnDestroy()的解决方案
- 在设置了android:parentActivityName后,点击子Activity返回键,父Activity总会调用OnDestroy()的解决方案
- onStop、onDestroy的调用时机
- Android中进入下一个Activity时在上一个Activity主动调用onDestroy()方法不会真正将上一个Activity从栈中删除
- Android中进入下一个Activity时在上一个Activity主动调用onDestroy()方法不会真正将上一个Activity从栈中删除
- 队列的C语言实现
- poj 1458最长公共子序列
- Android高效加载大图、多图解决方案,有效避免程序OOM
- 选择排序
- Eclipse + Maven
- Activity onDestroy() 调用研究
- Step into MongoDB - 01 - 安装与运行
- Angularjs的应用(1)
- LoadRunner中进程运行和线程运行区别
- 几道基本的java和Android面试题
- 作业3.22
- unity5 和UGUI的小Demo贪吃蛇
- poj 1080-Human Gene Functions
- Step into MongoDB - 02 - 数据类型