Как бороться с растровыми изображениями, когда активность находится в фоновом режиме? - PullRequest
1 голос
/ 04 июня 2019

Я нахожусь в ситуации, когда у вас есть несколько действий с различными действиями, которые показывают различных изображений (обычно загружаемых Glide).

Представьте, что мы помечаем .skipMemoryCache(true) в такой архитектуре:

enter image description here

Сделав это (все действия складываются и доступны нажатием кнопки назад), я понял следующее:

  • Телефоны, такие как OnePlus 3 (2016, 3 года), не будут зависать, но это приведет к высокой температуре и плохому восприятию пользователя (это задерживает рендеринг). Это был профиль OnePlus 3: enter image description here

  • Телефоны, такие как Samsung S4 Mini (2013, 6 лет), не будут зависать, но прекратят загрузку изображений.

  • Телефоны, такие как Motorola Moto G (2013, 6 лет и немного лучше, чем Samsung S4 Mini), зависали после двух или трех действий с растровыми изображениями.

Теперь мой вопрос, согласно руководствам о том, как избежать утечек памяти и ошибок OOM (Out Of Memory), я бы не нашел что-то вроде «не складывать действия с высокими ресурсами». Это то, что я делаю неправильно, или действия должны обрабатывать что-то особенное, когда onPause()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...