registerActivityLifecycleCallbacks 테스트

sjj12git·2021년 2월 23일

Application 을 상속받아서 Activity 의 Lifecycle 의 로그를 확인해 볼 수 있습니다.

상속받은 클래스는 AndroidManifest.xml의 application에 name 속성으로 추가합니다)
android:name=".mApplication"

Activity가 하나일 경우 onCreate()-> onStart() -> onResume() ->

홈버튼 클릭 시 -> onPause() -> onStop() -> onSaveInstanceState() ->

활동이 소멸할 경우 (back 버튼, Activity.finish, 화면 회전, Etc...) -> onDestroy()

여기서 onSaveInstanceState의 경우 back 버튼, finish 등을 통해 Activity 를 종료하면 onSaveInstanceState() 를 실행하지 않지만

화면이 회전하거나 홈버튼 등 Activity가 화면에서 내려가는 경우에는 onSaveInstanceState() 가 실행되는 것을 확인 할 수 있습니다.

public class mApplication extends Application {
  private static final String TAG = "mApplication.class";
  @Override public void onCreate() {
  	super.onCreate();
	registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { //API 14
	    // Override 생략 (Log)
	}
  }
}

Activity가 두개일 경우 Main.onCreate -> Main.onStart -> Main.onResume ->

클릭 -> main.onPause -> sub.onCreate -> sub.onStart -> sub.onResume -> main.onStop -> main.onSaveInstanceState ->

back 버튼 -> sub.onPause -> main.onStart -> main.onResume -> sub.onStop -> sub.onDestroy ->

back 버튼 -> main.onPause -> main.onStop -> main.onDestroy

여기서 Activity 를 실행할때 이전 Activity는 onPause가 호출된 상태에서
새로운 Activity 가 onResume 까지 호출되면 그다음 이전 Activity의 onStop onSaveInstanceState 가 실행되는것을 확인 할 수 있습니다.

developer 활동 수명 주기에 관한 이해

잘못된 정보는 댓글로 알려주세요

0개의 댓글