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

Завершается ли окончательная обработка не всегда для вызова фрагментов?Фрагмент финализации не называется

Что относительно полей, которые находятся внутри экземпляра фрагмента? Должен ли я установить их в onDestroy, чтобы они были исправлены?

+0

По большей части не беспокойтесь о 'finalize()' с Android и, в частности, о главных компонентах Android (Activity, Fragment, Service и т. Д.). ОС разработана, чтобы быть очень эффективной, когда дело доходит до очистки ресурсов и сбора мусора и тому подобного. Все это делается за кулисами, когда ОС определяет, какой конкретный объект больше не нужен. – Squonk

+0

Хотя я пытаюсь диагностировать всплеск памяти в моем приложении. Итак ... Мне нужно знать, когда объекты будут исправлены. –

+0

У меня был бы лучший способ сделать это, чтобы использовать различные инструменты Android SDK. – Squonk

ответ

1

Мое понимание заключается в том, что метод finalize вызывается сборщиком мусора и не может считаться вызванным в данный момент времени.

Эти сообщения могут дать вам более глубокое:

Я склонен делать свою очистку в OnPause или OnDestroy.

+1

В зависимости от того, что вы подразумеваете под «очисткой», я не уверен, что рекомендую делать многое в onPause, учитывая, что onPause -> onResume -> onPause цикл является самым жестким жизненным циклом активности или фрагмента. – Squonk

Смежные вопросы