Back to questions
Junior — Middle
92
Какими методами можно предотвратить утечки памяти в приложениях?
Companies where asked
EDJE
Answer from AI
sobes.tech AI
Утечки памяти в Android-приложениях можно предотвратить следующими методами:
- Освобождение ресурсов: всегда закрывайте Cursor, InputStream, OutputStream и другие ресурсы после использования.
- Избегание сильных ссылок на Context: не храните ссылки на Activity или Context в статических переменных, чтобы не препятствовать сборщику мусора.
- Использование WeakReference: для объектов, которые не должны препятствовать сбору мусора.
- Отписка от слушателей и колбеков: при уничтожении Activity или Fragment отписывайтесь от всех слушателей, чтобы избежать удержания ссылок.
- Проверка циклических ссылок: особенно в случае с анонимными классами и лямбдами.
- Использование профилировщиков: Android Profiler, LeakCanary для обнаружения и анализа утечек.
Пример использования WeakReference:
class MyClass(context: Context) {
private val contextRef = WeakReference(context)
fun doSomething() {
val ctx = contextRef.get()
ctx?.let {
// работа с контекстом
}
}
}