[번역] 안드로이드 라이프사이클 모음 - (4) ViewModels, Translucent Activities, Launch Modes



:bulb: 원문 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 사이에서의 차이점은 존재한다.

img

초기화는 ViewModel을 획득했을 때 일어나는데, 일반적으로 onCreate에서 수행된다.


2. Translucent Activities

Translucent Activity란 반투명 상태의 Activity이다. 반투명한 배경으로 아래에 뭐가 있는지 볼 수 있다.

Activity 테마에 android:windowIsTranslucent 속성이 적용되면, 다이어그램은 가볍게 변한다. 밑에 깔려있는 Activity는 stop되지 않고 pause만 되며 계속해서 UI를 업데이트할 수 있다.

img

또한, 홈에 갔다가 다시 돌아오면, 두 Activity 모두 restore, start 상태를 거치게 되고, Translucent Activity만 Resume된다.

img


3. Launch Modes

Task나 Back Stack을 다루는 것은 보통 권장하지 않는다. 기본으로 정의된 행동에 따라야 한다. 더 자세한 건 이 포스트를 참고해라.

만약 정말로 SINGLE_TOP을 사용해야 한다면, 다이어그램은 다음과 같이 된다.

img

비교를 위해 singleTask의 다이어그램도 보여주겠지만, 아마 사용할 일은 없을 것이다.

img

👉 주목! 만약 Jetpack의 Navigation을 사용하면 Single Top을 지원받을 수 있고 자동으로 통합된 백 스택을 사용할 수 있다.


비교

ViewModel

img


Translucent Activities

img


Launch Modes

img



:bookmark: REFERENCE
The Android Lifecycle cheat sheet — part IV : ViewModels, Translucent Activities and Launch Modes