2.26学习笔记 android事件分发,handler内存泄露
来源:互联网 发布:电子书数据库 编辑:程序博客网 时间:2024/05/22 14:54
http://blog.csdn.net/jxxfzgy/article/details/43926987
handler内存泄露
http://blog.csdn.net/allen315410/article/details/43638423
原因:
在Java中,非静态的内部类和匿名内部类都会隐式地持有其外部类的引用。静态的内部类不会持有外部类的引用。
handler以内部类出现在activity时,如果activity已经finish,但handler很久都没有运行完,系统回收activity时包内存溢出错误,runnable也会出现该问题
出现代码:
- public class SampleActivity extends Activity {
- private final Handler mLeakyHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- // ...
- }
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // Post a message and delay its execution for 10 minutes.
- mLeakyHandler.postDelayed(new Runnable() {
- @Override
- public void run() { /* ... */ }
- }, 1000 * 60 * 10);
- // Go back to the previous Activity.
- finish();
- }
- }
如何避免:
- private static class MyHandler extends Handler {
- private final WeakReference<SampleActivity> mActivity;
- public MyHandler(SampleActivity activity) {
- mActivity = new WeakReference<SampleActivity>(activity);
- }
- @Override
- public void handleMessage(Message msg) {
- SampleActivity activity = mActivity.get();
- if (activity != null) {
- // ...
- }
- }
- }
- private static final Runnable sRunnable = new Runnable() {
- @Override
- public void run() { /* ... */ }
- };
0 0
- 2.26学习笔记 android事件分发,handler内存泄露
- Android学习笔记之Handler内存泄露
- android handler 内存泄露
- Android Handler内存泄露
- Android Handler 内存泄露
- android内存泄露:handler
- Android学习笔记 Android事件分发
- Android Handler内存泄露分析
- Android内存泄露之Handler
- Android 防内存泄露handler
- Android内存泄露之Handler
- android学习笔记---事件分发机制(上)
- android学习笔记---事件分发(下)
- Android事件分发机制学习笔记
- Android事件分发机制学习笔记
- Android事件分发机制学习笔记
- Android事件分发机制---学习笔记
- Android学习笔记--事件分发机制
- 【转载】Android的三种网络通信方式
- linux动态链接库全局变量共享问题&DLL共享数据段
- 使用正则表达式NSRegularExpression 来验证textfiled输入的内容
- javascript实现的简单计算器
- 最微小的行动胜过最伟大的打算
- 2.26学习笔记 android事件分发,handler内存泄露
- NSRegularExpression iOS自带的正则表达式
- .net大批量处理数据表时出现的一个问题
- 路由器安置(Routing)
- iOS 中几种简单常用的操作
- NSInvocation的使用
- 从一个程序员转变为项目经理的蜕变
- 第一个Java程序经常出现的问题(二)
- openwrt: Makefile 框架分析