startActivityForResult() 메서드를 실행시킬 경우 Activity로 돌아올 때 onResume() 메서드와 onActivityResult() 메서드의 우선순위는?
먼저 Activity의 생명 주기를 확인해보겠습니다.
사진 찍기 이후와 갤러리를 다녀오고 난 다음에 Activity로 돌아와 onActivityResult() 메서드가 실행되는 것을 로그로 찍어 봤는데 다음과 같은 경우가 있었습니다.
Case 1
onPause()
onStop()
————————— (갤러리나 사진을 찍으러 다녀옴)
onActivityResult()
onRestart()
onStart() ← Point View
onResume() ← Point View
Case 2
onPause()
onStop()
————————— (갤러리나 사진을 찍으러 다녀옴)
onRestart()
onActivityResult()
onStart() ← Point View
onResume() ← Point View
Case 3
onPause()
onStop()
onDestroy()
————————— (갤러리나 사진을 찍으러 다녀옴)
onCreate()
onStart() ← Point View
onActivityResult()
onResume() ← Point View
정리
뭔가 일정하지 않습니다. 하지만 정리해보면 아래와 같습니다.
onActivityResult() 메서드는
- onStart() 메서드 전·후로 실행 된다.
- onResume() 메서드 전에 꼭 실행 된다.
결론
onResume() 메서드는 Activity로 돌아올 경우 꼭 실행이 되는 메서드입니다. startActivityForResult() 메서드를 실행시킬 경우 Activity로 돌아올 때onResume() 메서드와 onActivityResult() 메서드 중 어떤 것이 우선순위가 있는 것인지 확인해보지 않고서는 헷갈리기 쉬운 부분 입니다.
로그를 찍어 확인해 봤으니 이젠 잊지 말아야겠네요. (잊을까봐 여기에 정리해놓습니다… 흑…)
startActivityForResult() 메서드가 먼저 실행되고 onResume() 메서드가 나중 실행된다!
'Computer > Android' 카테고리의 다른 글
[Android] code내에서 동적으로 setTextSize (0) | 2016.03.25 |
---|---|
[Android] EditText 키보드 엔터(Enter)키 기능 변경 (0) | 2016.01.14 |
[Android] startActivityForResult(), onActivityResult(), 실행 과정 (0) | 2015.11.29 |
[Android] Bitmap Memory 관리 (0) | 2015.09.20 |
[Android] BitmapFactory.decodeByteArray() Out of memory (0) | 2015.09.13 |
[Android] Bitmap 관련 Memory 관리 (0) | 2015.09.08 |