앱 만들기/안드로이드 study

안드로이드 Activity 라이프사이클

나도처음이야 2021. 4. 13.
반응형

 

안드로이드 라이프사이클-개발자사이트 

developer.android.com/guide/components/activities/activity-lifecycle

 

활동 수명 주기에 관한 이해  |  Android 개발자  |  Android Developers

활동은 사용자가 전화 걸기, 사진 찍기, 이메일 보내기 또는 지도 보기와 같은 작업을 하기 위해 상호작용할 수 있는 화면을 제공하는 애플리케이션 구성요소입니다. 각 활동에는 사용자 인터페

developer.android.com

안드로이드 액티비티 생명주기(라이프 사이클)이다.

동작별로 나누어 보면 하기와 같다.

 

액티비티 실행시 순차적 실행

Oncreate() - 액티비티 시작할때

OnStart() - 액티비티 화면 보이기 직전

OnResume() - 액티비티 화면 보일때

 

액티비티 실행중에 상황에 따라 

OnPause() - 액티비티 화면의 포커스가 없어질때 (다이얼로그 띄워졌거나, 액티비티 전환시)

OnStop() - 액티비티가 화면이 완전히 보이지 않을때

OnDestroy()  - 액티비티가 종료되기 직전.

 

# 전화가 오거나, 홈키에 따라 앱이 화면에서 완전히 사라졌다가 

액션에 따라 다시 화면이 그려지는 경우

 

OnPause() -> OnStop() 

OnRestart() -> OnStart() -> OnResume() 

 

함수가 호출된다. OnRestart()는 재 호출시에만 불려지기에 상황에 맞게 OnStop() 과 OnRestart() 혹은 OnResume()에

개발자가 원하는 동작을 구현해야 한다.

 

# 정상적으로 액티비티가 종료되기 직전에는 OnDestroy() 함수가 불려지나,

   메모리가 부족하거나 오랫동안 사용하지 않는 앱은 시스템이 강제로 종료를 시키며 OnDestroy()를

   호출하지 않습니다.

  그렇기에 꼭 필요한 종료 기능이 있다면  OnDestroy() 전 OnStop()에 관련된 처리를 해주는 것이 좋습니다.

 

# 그리고 화면이 전환될때 사용이 되는 OnPause() 와 OnResume() 함수에는

   많은 부하가 걸리는 작업은 피해주는 것이 좋습니다. 

   여기서 많은 작업을 하다보면 화면 전환이 늦어지기 때문입니다.

 

감사합니다  :)

반응형

댓글