액티비티 생명주기에서 메인 액티비티에서 다른 액티비티가 호출되면 어떤 구조로 정지하고 실행되는지 로그를 찍어 보았다.

그 결과는


어플리케이션 실행

OnCreate - M (MainActivity)

onStart - M

onResume - M

MainActivity  동작

(버튼 선택으로 SecondActivity실행)

onPause - M

onCreate - S(SecondActivity)

onStart - S

onResume - S

onStop - M

SecondActivity 동작

백버튼으로 SecondActivity종료

onPause - S

onRestart - M

onStart - M

onResume - M

onStop - S

onDestroy - S

MainActivity 동작

백버튼으로 MainActivity 종료

onPause - M

onStop - M

onDestroy - M

메인 에서 서브 액티비티를 호출하면 메인 액티비티는 바로 pause되고 그동안 서브 액티비티가 생성된다. 다 생성된다면 메인액티비티는 Stop된다.

서브 액티비티를 종료할때는 종료시작 순간 서브액티비티는 pause되고 메인은 Restart부터 start - resume으로 다시 호출된다. 메인이 준비가 끝나면 서브액티비티는 stop - destroy과정을 통해 소멸된다.

즉, 액티비티간에 전환시 전환될 액티비티가 준비되어야 완전히 정지하고, 소멸된다는 것을 알 수 있다. 

사용한 소스코드 (다이얼 로그를 띄웠을때의 차이를 알아보려고 다이얼로그를 넣어봤지만 해당 액티비티는 계속 동작되는 상태인것 같다.)



'이론 > Java/Android' 카테고리의 다른 글

안드로이드 가상머신 동작 구조  (0) 2015.04.26
Posted by *me
: