+ 수정 (21.03.10) 화면 회전시 추가
갑자기 스마트폰 화면을 회전했을 때 생명주기가 어떻게 변하는지 궁금해져서 바로 실험해 보았다.
내 예상으로는 onPause -> onStop 까지만 실행되고 reStart가 실행될 줄 알았으나
onDestroy까지 실행된 후에 다시 앱이 재실행 되는 것을 알 수 있었다. (그렇군..🤔)
===========================================================================
앱 개발을 하다가 문득
'평소에 구글에서 많이 봐왔던 액티비티, 프래그먼트 생명주기의 화면 전환시에 진짜 생명주기는 어떻게 될까?'
라는 궁금증이 생겨서 직접 실험 해보기로 했다.
우선 하단에는 액티비티 생명주기 사진
이 그림은 구글에서 '액티비티 생명주기' 검색하면 제일 첫번째로 뜨는 그림이다. (다들 익숙할 듯)
다음은 메인 액티비티 생명주기를 로그로 찍은 결과이다.
역시나 그대로 찍힌다.
다음은 Main액티비티에서 Sub액티비티로 넘어갈 때 생명주기이다.
보시다시피 Main에서 Sub로 넘어갈 때 Main의 Pause -> Stop이 호출되기 전에 Sub의 Create -> Start -> Resume 가 먼저 호출되고 그 다음 Main의 함수가 호출된다.
처음 내 예상과는 살짝 달랐다. (Main의 Puase -> Stop이 호출된 후 Sub 함수들이 호출되는 줄 알았던..)
이쯤되니 프래그먼트도 궁금해졌다. 실험해보자.
아래는 Main에서 Fragment1을 띄운 후 Main을 종료시킨 결과이다.
Main과 Fragment의 Pause, Stop 등 같은 함수가 같은 시기에 종료되는 것을 알 수 있다.
이번에는 Main에서 Fragment1을 켜고 Fragment2를 켜보자.
Main에서 Fragment1을 띄우고 Fragment2를 띄운 모습이다.
역시나 액티비티 생명주기와 비슷하게 Fragment1의 Pause, Stop... 이 실행되기 전에 Fragment2의 Attach -> onCreate가 실행된다.
하지만 여기서 주의할 점은 액티비티에서는 Main의 Resume까지 실행된 후 Sub가 실행되었지만,
프래그먼트에서는 Fragment2의 onCreate까지만 실행되고 Fragment1의 Pause...onDetach 까지 실행 후에 나머지가 실행되는 것을 알 수 있다.
그러니까 Fragment1에서 Fragment2로 넘어갈 땐
이런 식이다.
'안드로이드' 카테고리의 다른 글
안드로이드 스튜디오 단축키 (기본 단축키부터 코딩시 단축키까지) (0) | 2021.03.12 |
---|