簡體   English   中英

為什么在Android中使用Activity的簡單示例會導致內存泄漏?

[英]Why does simple example using Activity in Android cause a memory leak?

我得到了以下示例,但我不確定為什么會導致內存泄漏? 我不能繞着它轉嗎?!

public class MyLeakActivity extends Activity {

// static reference to evil

   private static final Evil e;   
   public MyLeakActivity() {
     e = new Evil();
   }

private final class Evil {
      }
}

提前致謝。

問候法比安

看看這里……這篇文章是針對 Android 開發的。

https://dzone.com/articles/a-troublesome-legacy-memory-leaks-in-java

  • 避免在您的活動中使用非靜態內部類,使用靜態內部類並創建 WeakReference。

我認為您的設計可能永遠不會允許封閉類被 gc'd。 除非您有充分的理由使用非靜態內部類(可能出於范圍原因),否則一個好的經驗法則是始終從聲明為靜態的內部類開始。

在創建新對象之前,您應該檢查 e == null 是否。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM