Полупрозрачные активности и жизненный цикл ViewModels | OTUS

Полупрозрачные активности и жизненный цикл ViewModels

ViewModels (модели представления)

Жизненный цикл модели представления относительно прост — у нее всего лишь один метод обратного вызова, называемый onCleared(). Однако когда мы говорим о ViewModels, нужно понимать различие между фрагментом и активностью. Рамки их действия различны:

1_InXHWv6E6bLpOAXbTRZ9Zg_1-1801-326e46.png

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

Полупрозрачные активности

Название говорит само за себя, поэтому полупрозрачная активность имеет полупрозрачный фон (обычно он совсем прозрачный). В результате пользователь видит, что под ней находится.

Если к теме активности применить свойство android:windowIsTranslucent, то диаграмма немного изменится, то есть мы получим ситуацию, когда фоновая активность не останавливается никогда (лишь входит в состояние паузы), поэтому она может продолжать получать UI-обновления. Вот, как выглядит сравнение между обычной и полупрозрачной активностью:

1_e53GrDAmNgD9WbiI8lgIFw_1-1801-378131.png

Кроме того, в случае возвращения обратно к задаче, обе активности восстановятся и запустятся, и лишь полупрозрачная возобновится:

1_zXVUFwBl5tfBlGxhaUfHQw_1-1801-2b2f66.png

Режимы запуска

Одна из рекомендаций по работе с задачами и стеками переходов проста: следуйте поведению по умолчанию. Подробнее об этом здесь.

Если же в самом деле требуется режим SINGLE_TOP, то вот диаграмма для ознакомления:

Screenshot_1-1801-aabf62.png

Для сравнения, обратите внимание на режим singleTask на следующей картинке (однако, скорее всего, его вам использовать не надо):

Screenshot_2-1801-9e88c3.png

Если же вы применяете Navigation Architecture из Jetpack, то получите профит от поддержки Single Top и автоматического искусственного стека переходов.

По материалам «The Android Lifecycle cheat sheet — part IV : ViewModels, Translucent Activities and Launch Modes».

Предыдущие статьи на эту тему: 1. Жизненный цикл Андроид-приложений. 2. Жизненный цикл фрагментов Андроид-приложений. 3. Жизненный цикл Андроид-приложений: навигация и стек переходов.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться