This Handler class should be static or leaks might occur Android
来源:互联网 发布:java replace 引号 编辑:程序博客网 时间:2024/06/14 17:57
首先解释下这句话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
- 火狐浏览器的一些小技巧
- linux容器技术-LXC相关技术知识介绍
- 2012年7月编程语言排行榜:Objective-C超越C++
- HDU1873(队列应用)
- C++学习笔记(2)----字符数据在内存中的存储形式
- This Handler class should be static or leaks might occur Android
- LINUX 创建自启动服务案例
- fedora-16 Linux 和 win7 双系统,出现grub rescue的处理
- 无效的字符串或缓冲区长度
- ubuntu11.04下SVN服务器配置
- C++中string用法
- setsockopt设置socket状态 解决相关端口占用问题!
- DLL入口点函数DllMain .
- SQL中返回刚插入记录的ID