안드로이드 With Java #9 Activity
앱의 한 화면임. 앱은 화면들의 조합으로 구성되어 있음.
onCreate()
와 onDestroy()
의 사이onCreate()
에서 설정을 수행한 다음 나머지 리소스를 모두 onDestroy()
에서 해재 해주어야 한다.onStart()
와 onStop()
의 사이onResume()
과 onPause()
사이가시적 수명과 전경 수명과의 차이가 있는데, 가시적 수명은 앱에 보이기만 하면 되는 상태이다. 전경수명은 보이기만 해서는 안되고 전부가 보여야 한다.
다른 액티비티가 위에 떠있는 상태는 가시적 수명에 있는 것은 맞지만 전경 수명은 아니다.
onStart()
가 호출setContentView()
를 이곳에서 호출해야 Activity의 사용자 인터페이스 레이아웃을 정의할 수 있다.setContentView()
에게 정의해놓은 xml파일을 전달하여 이 함수가 사용자 눈에 보여지는 레이아웃을 그리기 시작함onResume()
이 따라오고 사라지면 onStop()
이 따라온다.onRestart()
가 뒤따라오고 사라지면 onDestroy()
가 따라온다.onSaveInstanceState()
를 구현하여 Activity 상태에 관한 중요한 정보를 보존할 수 있음onCreate()
와 onRestoreInstanceState()
에 전달이 됨이러한 과정들을 거쳐서 Activity에 다시 돌아와도 이전 상태를 복구할 수 있음
모든 라이프사이클을 오버라이드하여 Log.d()
메소드를 넣고 Log.d("LifeCycle", "메소드명()");
을 작성하여 로그를 찍게 해두었다.
그냥 Run을 하였을 때 표기된 로그는 다음과 같다.
정직하게 배웠던 라이프사이클이 표기되고 있다.
소위 말하는 멀티태스킹 버튼(맨 오른쪽 네모 버튼)을 누르면 onPause()
와 onStop()
이 추가로 로그에 찍힌다.
onRestart()
> onStart()
> onResume()
순으로 라이프사이클을 다시 수행한다.
onPause()
> onStop()
> onDestroy()
순으로 라이프사이클이 수행되며 종료된다.
인자로 Bundle 형태의 outState를 받음
onSaveInstanceState()
메소드를 오버라이드하여 저장하고 싶은 부분을 저장할 수 있음onCreate()
나 onRestoreInstanceState()
로 들어감인자로 Bundle을 받고
super
에서onCreate()
에 Bundle을 전해줌
인자로 Bundle을 받고
super
에서onRestoreInstanceState()
에 Bundle을 전해줌
의도적으로 Bundle에 어떤 값을 넣어서 상태가 회복이 되었을 때 원하는 행동을 하도록 커스터마이징 가능