This Handler class should be static or leaks might occur
来源:互联网 发布:软件测试课心得 编辑:程序博客网 时间:2024/06/05 03:45
private myHandler ttHandler = new myHandler(this);
static class myHandler extends Handler {WeakReference<StatusActivity> mActivity;myHandler(StatusActivity activity) {mActivity = new WeakReference<StatusActivity>(activity);}@Overridepublic void handleMessage(Message msg) {StatusActivity theActivity = mActivity.get();switch (msg.what) {case Contracts.message.LOAD_DATA:theActivity.check();break;default:break;}}}
ttHandler.sendEmptyMessageDelayed(Contracts.message.LOAD_DATA, 500);
更新到adt2.0的开发者们可能会在handler上发现这么一条警告:This Handler class should be static or leaks might occur 。
首先在ADT 20 Changes我们可以找到这样一个变化:New Lint Checks:
Look for handler leaks: This check makes sure that a handler inner class does not hold an implicit reference to its outer class.
翻译过来就是,Lint会增加一个检查项目即:确保class内部的handler不含有外部类的隐式引用 。
同一个线程下的handler共享一个looper对象,消息中保留了对handler的引用,只要有消息在队列中,那么handler便无法被回收,如果handler不是static那么使用Handler的Service和Activity就也无法被回收。这就可能导致内存泄露。当然这通常不会发生,除非你发送了一个延时很长的消息。
知道了原因我们在来看解决方法:
1.最不想动代码的同学,可以在Preference搜一下Lint,在Lint Error Checking里搜HandlerLeak,然后选择ignore,然后整个世界清净了。。。。(不推荐)
- This Handler class should be static or leaks might occur
- This Handler class should be static or leaks might occur
- This Handler class should be static or leaks might occur
- This Handler class should be static or leaks might occur
- This Handler class should be static or leaks might occur
- This Handler class should be static or leaks might occur
- This handler class should be static or leaks might occur
- This Handler class should be static or leaks might occur
- This Handler class should be static or leaks might occur.
- The Handler class should be static or leaks might occur.
- This Handler class should be static or leaks might occur,Handler和Context使用的注意事项!
- 关于Handler 使用This Handler class should be static or leaks might occur 警告处理
- Android 关于Handler警告处理 This Handler class should be static or leaks might occur
- 关于Handler 使用This Handler class should be static or leaks might occur 警告处理
- This Handler class should be static or leaks might occur Android
- This Handler class should be static or leaks might occur Android
- This Handler class should be static or leaks might occur Android
- This Handler class should be static or leaks might occur Android
- 2笔记本无需路由共享上网
- 通过apktool获取apk package name(包名)以及activity name
- linux全局替换命令
- hive学习小结
- 鼓励一下自己
- This Handler class should be static or leaks might occur
- 北大ACM1163 - The Triangle (枚举法&备忘录法&动态规划)
- 认真准备考博士了,以此做鉴
- Maven Tomcat 部署
- block(块元素)默认width:fill_parent, inline(行内元素)
- c++类大小(涵盖继承 虚继承 虚函数表)
- 枚举 备忘录法 最优规划对比
- 黑马程序员 java网络编程
- Win32汇编语言学习笔记>>第二课:编写第一个Win32汇编程序