引言
最近在學習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