Полупрозрачные активности и жизненный цикл ViewModels
ViewModels (модели представления)
Жизненный цикл модели представления относительно прост — у нее всего лишь один метод обратного вызова, называемый
Обратите внимание, что инициализация происходит каждый раз, когда вы получаете ViewModel, что обычно происходит в
Полупрозрачные активности
Название говорит само за себя, поэтому полупрозрачная активность имеет полупрозрачный фон (обычно он совсем прозрачный). В результате пользователь видит, что под ней находится.
Если к теме активности применить свойство android:windowIsTranslucent, то диаграмма немного изменится, то есть мы получим ситуацию, когда фоновая активность не останавливается никогда (лишь входит в состояние паузы), поэтому она может продолжать получать UI-обновления. Вот, как выглядит сравнение между обычной и полупрозрачной активностью:
Кроме того, в случае возвращения обратно к задаче, обе активности восстановятся и запустятся, и лишь полупрозрачная возобновится:
Режимы запуска
Одна из рекомендаций по работе с задачами и стеками переходов проста: следуйте поведению по умолчанию. Подробнее об этом здесь.
Если же в самом деле требуется режим SINGLE_TOP, то вот диаграмма для ознакомления:
Для сравнения, обратите внимание на режим singleTask на следующей картинке (однако, скорее всего, его вам использовать не надо):
Если же вы применяете Navigation Architecture из Jetpack, то получите профит от поддержки Single Top и автоматического искусственного стека переходов.
По материалам «The Android Lifecycle cheat sheet — part IV : ViewModels, Translucent Activities and Launch Modes».
Предыдущие статьи на эту тему: 1. Жизненный цикл Андроид-приложений. 2. Жизненный цикл фрагментов Андроид-приложений. 3. Жизненный цикл Андроид-приложений: навигация и стек переходов.