원문 The Android Lifecycle cheat sheet — part IV : ViewModels, Translucent Activities and Launch Modes을 번역한 글입니다.
(4) ViewModels, Translucent Activities, Launch Modes
1. ViewModel
ViewModel에는 onCleared
라는 하나의 콜백만 존재하므로 생명주기가 간단하다. 다만 Activity와 Fragment 사이에서의 차이점은 존재한다.
초기화는 ViewModel을 획득했을 때 일어나는데, 일반적으로 onCreate
에서 수행된다.
2. Translucent Activities
Translucent Activity란 반투명 상태의 Activity이다. 반투명한 배경으로 아래에 뭐가 있는지 볼 수 있다.
Activity 테마에 android:windowIsTranslucent
속성이 적용되면, 다이어그램은 가볍게 변한다. 밑에 깔려있는 Activity는 stop되지 않고 pause만 되며 계속해서 UI를 업데이트할 수 있다.
또한, 홈에 갔다가 다시 돌아오면, 두 Activity 모두 restore, start 상태를 거치게 되고, Translucent Activity만 Resume된다.
3. Launch Modes
Task나 Back Stack을 다루는 것은 보통 권장하지 않는다. 기본으로 정의된 행동에 따라야 한다. 더 자세한 건 이 포스트를 참고해라.
만약 정말로 SINGLE_TOP
을 사용해야 한다면, 다이어그램은 다음과 같이 된다.
비교를 위해 singleTask
의 다이어그램도 보여주겠지만, 아마 사용할 일은 없을 것이다.
👉 주목! 만약 Jetpack의 Navigation을 사용하면 Single Top을 지원받을 수 있고 자동으로 통합된 백 스택을 사용할 수 있다.
비교
ViewModel
Translucent Activities
Launch Modes
REFERENCE
The Android Lifecycle cheat sheet — part IV : ViewModels, Translucent Activities and Launch Modes