This Handler class should be static or leaks might occur Android
来源:互联网 发布:学java用什么书比较好 编辑:程序博客网 时间:2024/06/05 10:48
首先解释下这句话This Handler class should be static or leaks might occur,大致意思就是说:Handler类应该定义成静态类,否则可能导致内存泄露。
具体如何解决,在国外有人提出,如下:
Issue: Ensures that Handler classes do not hold on to a reference to an outer class
In Android, Handler classes should be static or leaks might occur. Messages enqueued on the application thread's MessageQueue also retain their target Handler. If the Handler is an inner class, its outer class will be retained as well. To avoid leaking the outer class, declare the Handler as a static nested class with a WeakReference to its outer class.
大体翻译如下:
Handler类应该应该为static类型,否则有可能造成泄露。在程序消息队列中排队的消息保持了对目标Handler类的应用。如果Handler是个内部类,那么它也会保持它所在的外部类的引用。为了避免泄露这个外部类,应该将Handler声明为static嵌套类,并且使用对外部类的弱应用。
使用范例:
static class MyHandler extends Handler { WeakReference<PopupActivity> mActivity; MyHandler(PopupActivity activity) { mActivity = new WeakReference<PopupActivity>(activity); } @Override public void handleMessage(Message msg) { PopupActivity theActivity = mActivity.get(); switch (msg.what) { case 0: theActivity.popPlay.setChecked(true); break; } } }; MyHandler ttsHandler = new MyHandler(this); private Cursor mCursor; private void test() { ttsHandler.sendEmptyMessage(0); }
- 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.
- Android 关于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
- Android“This Handler class should be static or leaks might occur”警告的处理方法
- This Handler class should be static or leaks might occur Android
- android之lint警告This Handler class should be static or leaks might occur
- This Handler class should be static or leaks might occur Android
- Android 源码结构
- SQL Server 中文处理 .
- C++控制音量
- Hbase高级模块:Filter、Counter、Coprocessor、HTablePool
- Ubuntu_在ubuntu下安装Qt开发环境
- This Handler class should be static or leaks might occur Android
- const数据成员的初始化方法
- myeclipse中修改字体大小
- 单内核,微内核,混合内核OS结构比较
- 【WebGUI】——iframe+lua页面不刷新上传文件
- [转]李嘉诚的深圳大学演讲:打工是最愚蠢的投资……
- android 图片格式选择 .
- Hbase 管理模块
- webrtc vs2012 编译报错