본문 바로가기
Android프로그래밍/Activity

안드로이드 액티비티 생애주기 / Android LifeCycle

by 둥둥동동# 2020. 12. 25.
728x90

 

 

1.생명주기,생애주기,LifeCycle

 

앞서 설명한 Acticity에서 모든 Activity는 생성부터 종료까지 생명주기를 가진다고 말씀드렸습니다.

앱을 사용하다가 홈화면으로 나가거나, 상단바를 내리는 등 특정한 행동을 하게되면 Activity는 각 상황에 맞는 생명주기로 변하게 되고 메서드를 호출해 작업을 수행합니다.

 

 

1.1생명주기의 단계

 

Activity는 다음의 생명주기를 가지게 됩니다

[그림1]액티비티의 생애주기

생애주기는 기본적으로 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() 액티비티 완전종료 완전종료
728x90
반응형

'Android프로그래밍 > Activity' 카테고리의 다른 글

안드로이드 액티비티 / android activity  (0) 2020.12.25

댓글