일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 코딜리티
- IntentTestRule
- viewholder
- 스와이프
- 안드로이드
- Fragment 수동 추가
- 생명주기
- Android
- espresso
- ui test
- searchview
- recyclerview
- 코틀린
- 재사용
- Error:Execution failed for task ':app:mergeDebugResources'
- 뷰변경 감지
- LayoutManger
- Fragment에서 Activity의 함수 사용하기
- ActivityTestRule
- 구분선
- 안드로이드스튜디오
- 고차함수
- 안드로이드13
- high order function
- 테마 아이콘
- 리사이클러뷰
- fragment
- 안드로이드개발레벨업교과서
- binding adapter
- adapter
Archives
- Today
- Total
룬아님의 취중코딩
Activity 생명주기 메서드 호출 시점 본문
1. 시작할 때
onCreate -> onStart -> onResume
2. 화면 회전할 때 (가로/세로)
onPause -> onStop -> onDestroy -> onCreate -> onStart -> onResume
3. 다른 액티비티가 위에 뜰 때 / 전원 키로 화면 OFF할 때 / 홈 키
onPause -> onStop
4. 백 키로 엑티비티 종료
onPause -> onStop -> onDestroy
5. 백 키로 기존 액티비티에 돌아올 때 / 홈 키로 나갔다가 돌아올 때
onRestart -> onStart -> onResume
6. 다이얼로그 테마 액티비티나 투명 액티비티가 위에 뜰 때
onPause
7. setReuslt() 메서드는 finish() 전에 호출
8. OutOfMemoryError에 의하여 앱이 강제 종료될 수도 있기 때문에 onStop()과 onDestroy()가 반드시 실행된다는 보장이 없다.
9. ActivityA에서 ActivityB를 실행할 때
ActivityA -> onPause
ActivityB -> onCreate -> onStart -> onResume
ActivityA -> onStop (ActivityB가 다이얼로그거나 투명 액티비티면 호출하지 않음)
onStop()은 다이얼로그 테마 액티비티나 투명 액티비티일 경우에는 호출되지 않는다. 이 것을 알기 위해서는 ActivityB가 보여지고 난 후이기 때문에 onStop()이 ActivityB의 생명주기를 마친 이후에 호출되는 것이다.
10. ActivityB를 닫고 ActivityA로 돌아갈 때
ActivityB -> onPause()
ActivityA -> onRestart() -> onStart() -> onResume()
ActivityB -> onStop() -> onDestroy()
이때는 단순히 위의 상황의 역순으로 생명주기에 일관성을 주기 위해서라고 생각한다.
반응형
'개발 > 안드로이드 개발' 카테고리의 다른 글
androidx.appcompat:appcompat:1.1.0을 사용할 때 롤리팝 버전 WebView에서 crash가 발생하는 증상 (0) | 2020.02.24 |
---|---|
생명주기 메서드 사용 시 주의사항, super.onXxx 호출 순서 (0) | 2020.02.17 |
TextView style이 italic일 때 글자 끝이 잘리는 문제 (0) | 2020.02.14 |
Gson원하는 Date format으로 변경하기 (0) | 2020.02.11 |
Koin을 이용하여 Fragment 끼리 ViewModel 공유하는 방법 (0) | 2020.02.06 |
Comments