반응형
1. LifeCycle이란
Activity 또는 Fragment 들의 수명 주기 상태 정보를 포함하고 있는 클래스이다. 다른 객체들은 수명 주기 상태 정보를 전달 받을 수 있다.
2. LifeCycle 주기
3. 장점
OnStart, OnResume... 등등 상태에 맞는 액션을 취하기 위해, Activity 또는 Fragment 로 상속된 클래스에서 함수를 오버라이드해서 사용해야 했다.
복잡한 설계에서 특정 객체에서 OnStart, OnResume.. 등등 상태에 맞는 코드를 실행할때, listener을 이용한 잦은 CallBack으로인한 복잡도가 올라갔다.
해당 LifecycleObserver 을 알게되면서, 간단하게 lifeCycle의 생명 주기 상태 정보를 수신 받아서 처리할 수 있었다.
4. 단점
복잡한 앱에서, 다른 객체들에서 LifeCycle 상태를 수신해 쓴다면 그 또한 찾느라 힘들듯하다.
5. 사용법
1) Main
class MainActivity : AppCompatActivity() {
private lateinit var dessertTimer: DessertTimer
override fun onCreate(savedInstanceState: Bundle?) {
...
dessertTimer = DessertTimer(this.lifecycle)
...
}
}
2) DesserTimer
class DessertTimer(lifecycle: Lifecycle) : LifecycleObserver{
init {
lifecycle.addObserver(this)
}
....
// LifeCyle 상태가 OnStart일때 호출됨
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun startTimer() {
...
}
// LifeCyle 상태가 OnStop일때 호출됨
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun stopTimer() {
....
}
}
반응형
'Programming > Android' 카테고리의 다른 글
[Kotlin/Android] CameraX (0) | 2021.08.23 |
---|---|
[Kotlin/Android] Paging 3 + Room DB (0) | 2021.08.18 |
[Kotlin/Android] Timber Library (로깅 라이브러리) (0) | 2020.09.07 |
[Kotlin/Android] DrawerLayout 특정 화면에서 사용자 액션 막기(화면 스와이프) With navigation (0) | 2020.09.02 |
[Kotlin/Android] navigation safe args (0) | 2020.09.01 |