This Handler class should be static or leaks might occur Android
2014-05-05 10:11
471 查看
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); }WeakReference则类似于可有可无的东西。在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存,说白了就是一个没那么strong要求垃圾回收器将一个对象保留在内存中。不过,由于垃圾回收器是一个优先级很低的线程,因此不一定会很快发现那些只具有弱引用的对象。
相关文章推荐
- 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
- 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”警告的处理方法
- Android 关于Handler警告处理 This Handler class should be static or leaks might occur
- android之lint警告This Handler class should be static or leaks might occur
- This Handler class should be static or leaks might occur (anonymous android.os.Handler) less... (Ctr
- 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
- 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”警告的处理方法
- 关于Android“This Handler class should be static or leaks might occur”警告的处理方法
- This Handler class should be static or leaks might occur Android (转)