![](/img/trans.png)
[英]Writing to a static variable in an instance method, why is this a bad practice?
[英]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.