Be Developer

[Android] 액티비티 생명 주기(Activity Life Cycle) 본문

Android

[Android] 액티비티 생명 주기(Activity Life Cycle)

yujin_dev 2019. 4. 29. 11:24
반응형

액티비티 생명 주기 관리

액티비티의 기본적인 세 가지 상태

   1. 재개됨(Resumed) = 실행 중

      - 액티비티가 화면 포그라운드에 있고 사용자 포커스를 가짐

   2. 일시정지됨(Paused)

      - 다른 액티비티가 이 액티비티 위에 표시되어 있으며 해당 액티비티는 부분적으로 투명하거나 전체 화면을 덮지 않는 상태

      - Activity 객체가 메모리에 보관되어 있고, 모든 상태 및 멤버 정보를 유지하며, 창 관리자에 붙어있는 상태로 유지되지만 메모리가 부족한 경우 시스템이 중단시킬 수 있음

   3. 정지됨(Stopped)

      - 액티비티가 다른 액티비티에 완전히 가려진 상태 (백그라운드에 위치함)

      - Paused 상태와 유사하지만 창 관리자에 붙어있지 않음

      - 더 이상 사용자에게 표시되지 않으며 다른 곳에 메모리가 필요하면 시스템이 종료시킬 수 있음

생명 주기 콜백 구현

- 생명 주기 메서드를 구현하려면, 항상 슈퍼클래스 구현을 호출한 다음에만 다른 작업을 시작할 수 있음

- 액티비티 전체 수명 : onCreate() ~ onDestroy()

- 액티비티 가시적 수명 : onStart() ~ onStop()

   1. 사용자가 액티비티를 화면에서 보고 이와 상호작용할 수 있음

   2. 시스템은 액티비티의 전체 수명 내내 onStart() 및 onStop()을 여러 번 호출할 수 있으며, 이때 액티비티는 사용자에게 표시되었다 숨겨지는 상태를 오가게 됨

- 액티비티 전경 수명 : onResume() ~ onPause()

   1. 이 액티비티가 화면에서 다른 모든 액티비티 앞에 표시되며 사용자 입력도 여기에 집중됨

   2. 이 상태는 자주 전환될 수 있으므로, 이 두 메서드의 코드는 상당히 가벼워야 함

 

액티비티 생명 주기

- 시스템이 메서드가 반환된 후 액티비티 코드의 다른 줄을 실행하지 않고도 언제든 이 액티비티를 호스팅하는 프로세스를 중단시킬 수 있는 메서드 : onPause(), onStop(), onDestroy()

- 시스템이 비상 시에 메모리를 복구해야 할 경우 onStop(), onDestroy()는 호출되지 않을 수도 있음

- 중요한 영구적 데이터를 보관하기 위해 작성하는 경우 onPause() 사용

반응형
Comments