Dev_Study/Android

6. 액티비티 수명주기 (Life Cycle)

LeeDaniel 2018. 1. 26. 14:51

액티비티의 대표적인 상태정보

 

실행(Running)

-화면상에 액티비티가 보이면서 실행되어 있는 상태

-액티비티 스택의 최상위에 있으며 포커스를 가지고 있음

 

일시 중지(Paused)

-사용자에게 보이기는 하지만 다른 액티비티가 위에 있어 포커스를 받지 못하는 상태.

-대화상자가 위에 있어 일부가 가려져 있는 경우에 해당

 

중지(Stopped)

-다른 액티비티에 의해 완전히 가려져 보이지 않는 상태

 

 

이렇게 액티비티의 상태정보가 변화하는것을

액티비티의 수명주기(Life Cycle)라고 하며

액티비티가 처음 만들어진 후 없어질때까지

상태가 변화하면서 각각에 해당하는 메소드가 자동으로 호출됨

onCreate()

-액티비티가 처음에 만들어졌을때 호출됨

-화면에 보이는 뷰들의 일반적인 상태를 설정하는 부분

-이전 상태가 저장되어있는 경우에는 번들객체를 참조하여 이전상태 복원가능

-이 메소드 다음에는 항상 onStart()가 호출됨

 

onStart()

-액티비티가 화면에 보이기 바로전에 호출됨

-액티비티가 화면상에 보이면 이 메소드 다음에 onResume()가 호출됨

-액티비티가 화면에서 가려지게되면 이 메소드 다음에 onStop()가 호출됨

 

onResume()

-액티비티가 사용자와 상호작용하기 바로전에 호출됨

 

onRestart()

-액티비티가 중지된 이후에 호출되는 메소드로 다시시작되기 바로전에 호출됨

-이 메소드 다음에는 항상 onStart()가 호출됨

 

onPause()

-또다른 액티비티를 시작하려고할때 호출됨

-저장되지않은 데이터를 저장소에 저장하거나 애니메이션중인 작업을 중지하는등의 기능을 수행하는 메소드임

-이 메소드가 리턴하기전에는 다음 액티비티가 시작될 수 없으므로

 이 작업은 매우빨리 수행된 후 리턴되어야함

-액티비티가 이 상태에 들어가면 시스템은 액티비티를 강제종료 할 수 있음

 

onStop()

-액티비티가 사용자에게 더이상 보이지 않을때 호출됨

-액티비티가 소멸되거나 또다른 액티비티가 화면을 가릴때 호출됨

-액티비티가 이 상태에 들어가면 시스템은 액티비티를 강제종료 할 수 있음

 

onDestroy()

-액티비티가 소멸되어 없어지기전에 호출됨

-이 메소드는 액티비티가 받는 마지막 호출이 됨

-액티비티가 애플리케이션에 의해 종료되거나(finish()메소드 호출)

 시스템이 강제로 종료시키는 경우에 호출될 수 있음

-위의 두가지 경우를 구분할때 isFinishing()메소드를 이용함

-액티비티가 이 상태에 들어가면 시스템은 액티비티를 강제종료 할 수 없음

반응형

'Dev_Study > Android' 카테고리의 다른 글

8. 브로드캐스트 수신자(BroadcastReceiver)  (0) 2018.01.26
7. 서비스  (0) 2018.01.26
5. 액티비티 간에 데이터 전달하기  (0) 2018.01.26
4. 플래그(Flag)  (0) 2018.01.26
3. 암시적 인텐트(Implicit Intent)  (0) 2018.01.26