0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: android, viewmodels, жизненный цикл</p>
1
<p>Теги: android, viewmodels, жизненный цикл</p>
2
<h4>ViewModels (модели представления)</h4>
2
<h4>ViewModels (модели представления)</h4>
3
<p>Жизненный цикл модели представления относительно прост - у нее всего лишь один метод обратного вызова, называемый onCleared(). Однако когда мы говорим о ViewModels, нужно понимать различие между фрагментом и активностью. Рамки их действия различны:</p>
3
<p>Жизненный цикл модели представления относительно прост - у нее всего лишь один метод обратного вызова, называемый onCleared(). Однако когда мы говорим о ViewModels, нужно понимать различие между фрагментом и активностью. Рамки их действия различны:</p>
4
<p>Обратите внимание, что инициализация происходит каждый раз, когда вы получаете ViewModel, что обычно происходит в onCreate().</p>
4
<p>Обратите внимание, что инициализация происходит каждый раз, когда вы получаете ViewModel, что обычно происходит в onCreate().</p>
5
<h4>Полупрозрачные активности</h4>
5
<h4>Полупрозрачные активности</h4>
6
<p>Название говорит само за себя, поэтому полупрозрачная активность имеет полупрозрачный фон (обычно он совсем прозрачный). В результате пользователь видит, что под ней находится.</p>
6
<p>Название говорит само за себя, поэтому полупрозрачная активность имеет полупрозрачный фон (обычно он совсем прозрачный). В результате пользователь видит, что под ней находится.</p>
7
<p>Если к теме активности применить свойство<em>android:windowIsTranslucent</em>, то диаграмма немного изменится, то есть мы получим ситуацию, когда фоновая активность не останавливается никогда (лишь входит в состояние паузы), поэтому она может продолжать получать UI-обновления. Вот, как выглядит сравнение между обычной и полупрозрачной активностью:</p>
7
<p>Если к теме активности применить свойство<em>android:windowIsTranslucent</em>, то диаграмма немного изменится, то есть мы получим ситуацию, когда фоновая активность не останавливается никогда (лишь входит в состояние паузы), поэтому она может продолжать получать UI-обновления. Вот, как выглядит сравнение между обычной и полупрозрачной активностью:</p>
8
<p>Кроме того, в случае возвращения обратно к задаче, обе активности восстановятся и запустятся, и лишь полупрозрачная возобновится:</p>
8
<p>Кроме того, в случае возвращения обратно к задаче, обе активности восстановятся и запустятся, и лишь полупрозрачная возобновится:</p>
9
<h4>Режимы запуска</h4>
9
<h4>Режимы запуска</h4>
10
<p>Одна из рекомендаций по работе с задачами и стеками переходов проста: следуйте поведению по умолчанию. Подробнее об этом<a>здесь</a>.</p>
10
<p>Одна из рекомендаций по работе с задачами и стеками переходов проста: следуйте поведению по умолчанию. Подробнее об этом<a>здесь</a>.</p>
11
<p>Если же в самом деле требуется<a>режим</a>SINGLE_TOP, то вот диаграмма для ознакомления:</p>
11
<p>Если же в самом деле требуется<a>режим</a>SINGLE_TOP, то вот диаграмма для ознакомления:</p>
12
<p>Для сравнения, обратите внимание на режим singleTask на следующей картинке (однако, скорее всего, его вам использовать не надо):</p>
12
<p>Для сравнения, обратите внимание на режим singleTask на следующей картинке (однако, скорее всего, его вам использовать не надо):</p>
13
<p>Если же вы применяете Navigation Architecture из Jetpack, то получите профит от поддержки Single Top и автоматического искусственного стека переходов.</p>
13
<p>Если же вы применяете Navigation Architecture из Jetpack, то получите профит от поддержки Single Top и автоматического искусственного стека переходов.</p>
14
<p><em>По материалам "<a>The Android Lifecycle cheat sheet - part IV : ViewModels, Translucent Activities and Launch Modes</a>".</em></p>
14
<p><em>По материалам "<a>The Android Lifecycle cheat sheet - part IV : ViewModels, Translucent Activities and Launch Modes</a>".</em></p>
15
<p><em>Предыдущие статьи на эту тему:</em>1.<a>Жизненный цикл Андроид-приложений</a>. 2.<a>Жизненный цикл фрагментов Андроид-приложений</a>. 3.<a>Жизненный цикл Андроид-приложений: навигация и стек переходов</a>.</p>
15
<p><em>Предыдущие статьи на эту тему:</em>1.<a>Жизненный цикл Андроид-приложений</a>. 2.<a>Жизненный цикл фрагментов Андроид-приложений</a>. 3.<a>Жизненный цикл Андроид-приложений: навигация и стек переходов</a>.</p>
16
16