1.생명주기,생애주기,LifeCycle
앞서 설명한 Acticity에서 모든 Activity는 생성부터 종료까지 생명주기를 가진다고 말씀드렸습니다.
앱을 사용하다가 홈화면으로 나가거나, 상단바를 내리는 등 특정한 행동을 하게되면 Activity는 각 상황에 맞는 생명주기로 변하게 되고 메서드를 호출해 작업을 수행합니다.
1.1생명주기의 단계
Activity는 다음의 생명주기를 가지게 됩니다
생애주기는 기본적으로 6단계로 나뉩니다
1.1.1 onCreate()
액티비티를 처음 실행 할 때 호출됩니다. 처음실행될 때 기본적으로 한번만 호출되게끔 되어있습니다.
때문에 액티비티에서 한번만 실행되는 코드, 즉 초기값을 설정할 때 주로 이용됩니다
onCreat()는 Bundle타입의 SavedInstanceState를 인자로 받습니다
이 객체는 이전에 저장된 액티비티의 정보를 가지고 있고 디폴트값는 Null입니다.
1.1.2 onStart()
사용자에게 보여지기 직전에 호출되며 UI를 관리하기위한 코드를 작성하합니다
//액티비티의 스택에 올라갔다면 onResume() 호출될 것입니다.
액티비티가 완전히 중지(화면이 가려짐)되었다가 다시 시작될 때 호출됩니다.
1.1.3 onResume()
화면에 액티비티가 보여지고 사용자와 상호작용하기 시작합니다.
현재 액티비티에 포커스가 되어 있는 동안만 onResume()상태를 유지합니다.
포커스가 이동되면 상태에 따라 onPause() 혹은 onStop()으로 바뀌게 됩니다
1.1.4 onPause()
액티비티 포커스가 이동되었을 때 호출됩니다. 때에 따라서 일부 시스템 자원, 배터리에 영항을 미치는 리소스를 해제하는 코드를 작성합니다. 이 상태는 보통 작업이 진행중일 가능성이 높기 때문에 액티비티를 메모리에서 내리지 않고 유지시킵니다. 만약 메모리가 부족해 졌을 경우 onSavedInstanceState()메서드가 호출되어 현재상태를 Bundle로 저장합니다.
액티비티를 복구해야 할 때 onCreate()를 호출하며 onsavedInstanceState를 인자로 넣는것도 이 때문입니다.
1.1.5 onStop()
화면이 완전히 보이지 않거나 활동이 일어나지 않는 상태를 의미합니다. 이때에도 사용하지 않는 자원들을 해제할 필요가 있습니다. 사용자가 멀티윈도우에서 작업을 할 때 앱을 멈추지 않게 하려면 onStop에 코드를 작성하여 작업을 계속 진행 할 수 있습니다. 액티비티가 다시 활성화 되면 onRestart()를 호출하여 onStart()를 실행합니다.
1.1.6 onDestroy()
액티비티가 소멸되기 직전 호출되며 호출 후에는 완전히 종료됩니다
정리
메소드 | 설명 | 기타 |
onCreat() | 액티비티가 생성됨 | 액티비티를 활성화 시켜줌 |
onStart() | 화면관리 | |
onResume() | 상요작용시작 | |
onPause() | 상호작용중단 | 액티비티 정지시킴 |
onStop() | 화면에서 사라짐, 완전중단 | 저장작업 필요 |
onDestroy() | 액티비티 완전종료 | 완전종료 |
'Android프로그래밍 > Activity' 카테고리의 다른 글
안드로이드 액티비티 / android activity (0) | 2020.12.25 |
---|
댓글