개발자이야기
android 수명주기 본문
android lifecycle
이번엔 android 수명주기에 대해 상황별로 알아보도록 하겠습니다.
android 는 위와같은 수명주기를 갖고 있습니다.
화면과 함께 간단히 로그를 찍어서 살펴보겠습니다.
기본적인 상황
1. 메인 액티비티의 실행
onCreate
↓
onStart
↓
onResume
2. app background 상태
onPause
↓
onStop
백그라운드 상태에서 앱 재진입
onRestart
↓
onStart
↓
onResume
3. intent 실행 수명주기 2번인 위와 동일
위와같은 수명주기를 확인할 수 있습니다.
onActivityResult (deprecated)
onActivityResult는 deprecated 되었습니다.
val result = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
//doSomething
}
hello.setOnClickListener {
result.launch(intent)
}
위와같이 콜백을 등록하여 onActivityResult 에서 받던 내용을 받을 수 있습니다. 해당내용을 자세히 설명하진 않겠습니다.
해당 포스팅은 수명주기에 관한 내용이니. 위의 새로운 방법으로 수명주기를 확인 해 보겠습니다.
1. 메인액티비티 -> 서브액티비티
화면 SubActivity
MainActivity 수명주기
onPause
↓
onStop
SubActivity 수명주기
onCreate
↓
onStart
↓
onResume
2. 서브액티비티 -> 메인액티비티
화면 MainActivity
SubActivity 수명주기
onPause
↓
onStop
↓
onDestroy
MainActivity 수명주기
onRestart
↓
onStart
↓
onActivityResult
↓
onResume
위와같은 수명주기를 확인할 수 있습니다.
앱을 backGround 상태에서 다시 켜지는 상황과 액티비티의 이동 후 재진입 상황에서 onResume() 오버라이드 메소드가 항상 호출되는것을 확인할 수 있었습니다.
위의 상황은 많이 발생하는 상황이니 기억해두면 좋을 것 같습니다.
읽어주셔서 감사합니다.
'android' 카테고리의 다른 글
android intent bundle (0) | 2021.07.22 |
---|---|
android launchMode (0) | 2021.07.13 |
android Dagger (0) | 2021.06.09 |
mvvm + dagger (0) | 2021.06.07 |
android AAC LiveData - switchMap, map (0) | 2021.05.28 |