2013-11-21 22 views
1
public void onDestroy() { 
} 
protected void finalize() { 
} 

確定finalize不總是被調用的片段嗎?片段敲定不叫

那麼片段實例中的字段呢?我必須在onDestroy中將它們設置爲null,以便它們被回收?

+0

絕大多數情況下,不要擔心Android上的'finalize()',特別是主要的Android組件(Activity,Fragment,Service等)。操作系統在清理資源和垃圾收集等方面非常高效。這些東西都是在操作系統確定不再需要特定對象時在幕後完成的。 – Squonk

+0

雖然我正嘗試在我的應用程序中診斷內存峯值。所以......我需要知道什麼時候對象被回收。 –

+0

我會有最好的方法來使用各種Android SDK工具。 – Squonk

回答

1

我的理解是,finalize方法被垃圾回收器調用,不能依賴於在給定的時間被調用。

這些職位可能會給你更深入的瞭解:

我傾向於做我的的onPause或清理的onDestroy。

+1

根據「清理」的含義,我不確定我會建議在onPause方面做些什麼,並記住onPause - > onResume - > onPause週期是Activity或Fragment生命週期中最緊密的部分。 – Squonk