Должен ли я явно устанавливать все переменные фрагмента в null в методе onDestroy (или onDetach), чтобы избежать утечек памяти? Или это не обязательно, и они будут GCed, когда фрагмент «уничтожен». Каковы наилучшие методы? Заранее спасибо!Нулевые переменные фрагмента на onDestroy()
9
A
ответ
6
Вам не о чем беспокоиться. ГК позаботится об этом. В Java вы почти наверняка должны ПОПЫТАТЬ, чтобы иметь утечку памяти (да, это возможно, но очень редко). Поэтому не беспокойтесь об этом. Если вы установите переменные в null
, вы просто закончите тратить время на код, который вам не нужен, и добавит к обслуживанию по дороге. GC в Java отлично справляется с уничтожением переменных и объектов, на которые не ссылаются.
9
Просто надстройка,
- Если у вас есть какой-либо сервис, запущенный в вашем коде, остановить его.
- Если вы прошли регистрацию среди других трансляций или других лиц, не регистрируйте их
- Если у вас есть курсоры, откройте их.
- Если у вас есть растровые изображения, переработайте их.
+1
хорошее дополнение, спасибо! – user2758776
Смежные вопросы
- 1. Очистка фрагмента в onDestroy и onDetach
- 2. setActivityForResult из фрагмента возвращает нулевые данные
- 3. Переменные фрагмента?
- 4. Нулевые переменные в PHP-функциях
- 5. закрытый переменный внутри фрагмента - все нулевые, почему?
- 6. Исключение OnDestroy в основной деятельности с использованием фрагмента Android
- 7. OnDestroy(), вызываемый несколько раз
- 8. OnDestroy и Очистка
- 9. Нулевые переменные ссылочного типа влияют на производительность сборщика мусора (GC)?
- 10. Diffrentiate переменные, имеющие нулевые и 0
- 11. Определенные переменные php имеют нулевые значения
- 12. Очистка Статические данные onDestroy()
- 13. фрагмента доступа переменные за пределы фрагмента в виде пейджере
- 14. Android onDestroy и финиш
- 15. заменить фрагмент без onDestroy
- 16. android onDestroy
- 17. onDestroy называется
- 18. как писать, если нулевые объемный с кодом фрагмента кода
- 19. Как вызвать переменные MainActivity из активности фрагмента
- 20. Нулевые указатели на классы
- 21. Android: прослушивание активности onDestroy()
- 22. onDestroy() вызывается после onPause()
- 23. Отличайте Android onDestroy события
- 24. onDestroy() не вызван на жесткую остановку приложения
- 25. Обновление статуса на сервере по методу onDestroy
- 26. Обход вокруг onDestroy вызван на изменение ориентации?
- 27. android onDestroy работает отлично только на vd
- 28. Android, AsyncTask не работает на OnDestroy()
- 29. Camera Intent call onDestroy()
- 30. OnDestroy() в Android службы
У меня была утечка памяти в приложении для Android (через некоторое время из-за OutOfMemoryError она разбилась), где мне пришлось перебирать некоторые объекты и устанавливать ссылки на нуль, чтобы облегчить жизнь сборщику мусора. Но хорошее эмпирическое правило действительно: «Не исправить то, что не сломано». –
Да, я знаю, что они были раньше, и это возможно, но это очень редко. Я согласен, но не понимаю, что не сломано :) – BlackHatSamurai
Просто подсказка: для обнаружения утечек эта библиотека очень полезна https://github.com/square/leakcanary –