簡體   English   中英

好的記憶課清理習慣?

[英]good memory class clean up practice?

最近,我一直在觀看Google android開發人員的視頻,內容涉及在完成對對象的引用時刪除對對象的引用的重要性...我已經實現了一種簡單的清除方法。 那真的行得通嗎?

例如,我在應用程序中的視圖上做了很多動畫處理。 為了使事情更干凈,我為不同班級的活動制作動畫。 我將活動的引用傳遞給tweenanimation類。

public void onStart() {
    tweens = new TweenUm(this);
}

然后在我的onStop中...

public void onStop() {
    tweens.cleanup();
    tweens = null;
    super.onStop();
}

我的清理方法看起來像...

public void cleanup() {
    mainAct = null;
    fab = null;
    fabcrad=null;
    searchFor = null;
}

mainact是我傳遞的活動,以及我要刪除參考的其他視圖。

這會好嗎?

不必添加方法cleanup

因為你是置零的參考對象tweens ,如果沒有其他參考文獻都在存儲器中,編程和維持tweens和僅通過補間引用的所有內部對象(mainAct,FAB,fabcrad,searchFor)將被從存儲器通過垃圾收集器釋放。

僅使用cleanup方法來關閉資源(例如文件,套接字等)。

注意:雖然使補間為零很重要,但是創建(並調用)清理不是一個好的選擇,但實際上有兩種可能:

  • 不存在其他任何關於補間的引用,因此不需要使內部引用無效
  • 存在其他關於補間的引用,在這種情況下,您可能會破壞補間的內部狀態,使其變為無效狀態。

因此,通常,如果您不需要關閉外部打開的資源,那么使用清理方法不是一個好習慣。

暫無
暫無

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

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