簡體   English   中英

為什么說靜態活動在 Android 中是不好的做法

[英]Why say static activity is a bad practice in Android

public static MainActivity mainActivity ;

public static MainActivity instance() {
    return mainActivity  ;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_navigation);
    mainActivity  = this;

}

@Override
protected void onDestroy() {
    super.onDestroy();
    if (mainActivity  != null) {
        mainActivity  = null;       
    }      
}

為什么會內存泄漏? 為什么我們說這篇文章很糟糕? 我想從GC原理來理解。

onDestroy 並不總是被調用,如果不是,你會泄漏。 onStop 總是被調用,如果你確實將 mainActivity 設置為 null,那么你可能不會有泄漏。 但我想知道為什么你會需要這個。

另外,您的:

public static MainActivity instance() {
    if(mainActivity == null){
         mainActivity  = this;
    }
    return mainActivity  ;
}

是靜態的並使用“this”,我認為這是不可能的。 靜態方法中沒有“this”。

暫無
暫無

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

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