引言
最近在学习Android开发,因为本身对JAVA语言不是十分的熟悉,所以也掉进很多坑里面。
昨天是Android的simulator中官方的URLConnection无法使用FTP协议的BUG,今天来看Handler的内存泄露提示
Handler的内存泄露
随手写了一个很普通的Handler,结果Android Studio就狠狠地弹出大块黄色的警告QAQ
//处理句柄
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
}
};
警告:This Handler class should be static or leaks might occur (null) (省略一万字)
当时就懵逼了,这也会内存泄露(leak)!!!说好的java的GC(Garbage Collection)机制呢?说好的不用操心内存的泄露呢?
参考
[1] android handler的警告Handler Class Should be Static or Leaks Occur
[2] 警告handler leaks的解决方法
[3] 理解 Java 的 GC 与 幽灵引用
[4] Java引用总结–StrongReference、SoftReference、WeakReference、PhantomReference