aakumykov
@aakumykov
Начинающий Android-разработчик

Допустима ли временная утечка Activity/Context?

Разрабатываю приложение, в котором долгоиграющие задачи выполняются внутри службы.
Чтобы не писать отдельный метод под каждую задачу, сделал в службе один метод, принимающий анонимный объект Runnable с произвольным кодом внутри. Через этот объект в службу попадает и ссылка на Activity, которая там задерживается, пока задача не будет завершена (от секунд до минуты), Activity при этом может закрываться.
Допустимо ли такое в "серьёзной" разработке? Или подобных ситуаций нельзя допускать ни в коем случае?
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
iLLuzor
@iLLuzor
Java, Kotlin, Android Developer
Любая утечка - это серьёзный баг.
Если я правильно понял, и служба, это Service, то недопустимо.
Во-первых, непонятно, как вообще в сервисе выполнять тяжёлые задачи. Последние версии андроида жёстко это ограничивают. Вместо сервисов рекомендуется использовать WorkManager
Во-вторых передавать ссылки на активити\фрагменты в долгоживущие сущности вообще не стоит, так как вероятность утечки велика.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Нет, недопустимо. Использовать сервис тебе с большой вероятностью вообще не нужно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы