본문 바로가기
Android

[안드로이드] 액티비티 상태

by Sky Titan 2020. 9. 8.
728x90

액티비티의 상태

  • 액티비티 스택 내의 위치에 따라 결정됨
  • 새 액티비티가 시작되면 활성 상태가 되고 스택에서 맨 위로 옮겨짐
  • 사용자가 뒤로 가기 버튼을 눌러 뒤로 이동하거나 포어그라운드 액티비티가 다른 이유로 닫히면 스택에서 아래 쪽에 있던 순서상 그 다음 액티비티가 위로 옮겨지고 활성 상태가 됨

1. 활성 (active)

  • 스택에서 맨 위에 있는 가시적이고 포커스를 가진 포어그라운드 액티비티
  • 사용자의 입력을 받음
  • 다른 액티비티가 활성화 되면 '일시 정지' 상태가 됨

2. 일시 정지 (paused)

  • 액티비티가 보이기만 할 뿐 포커스를 갖지는 않는 상태
  • 멀티 윈도우 환경에선 보이는 어플리케이션이 여러 개여도 하나의 액티비티만이 사용자와 상호 작용하며 활성 상태를 유지한다.
  • 활성 상태인 것처럼 취급받지만 입력 이벤트는 못 받음
  • 투명한 액티비티전체 화면을 차지하지 않는 액티비티를 가지면 일시 정지 상태가 됨
  • 액티비티가 화면에서 완전히 가려지면 '정지' 상태가 됨
  • 모든 액티비티는 일시 정지 상태를 거쳐 완전한 정지 상태로 전환

3. 정지 (stopped)

  • 액티비티가 보이지 않을 때
  • 메모리에 남아 모든 상태 정보를 유지 but 시스템에서 메모리 확보 시 중단될 유력한 후보가 됨
  • 액티비티가 종료되거나 닫히면 '비활성 상태'가 됨

4. 비활성 (inactive)

  • 액티비티가 실행된 적이 있지만 종료되었다면 비활성 상태가 됨
  • 액티비티 스택에서 제거
  • 다시 사용하려면 재시작 해야함

LRU 리스트

  • 리소스를 확보하기 위해 중단할 어플리케이션들의 순서 결정에 사용
  • 어플리케이션의 어떤 액티비티도 보이는 상태가 아닐 때는 어플리케이션 자체가 LRU (Least Recently Used) 리스트에 오름.
728x90

댓글