Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발여행일지~

액티비티 생명주기를 조금씩 천천히 알아가보자 본문

코틀린 공부정리

액티비티 생명주기를 조금씩 천천히 알아가보자

야생돌고래 2023. 8. 10. 21:14

액티비티 생명주기

1) onCreate()

  • Activity가 생성되면 가장 먼저 호출된다
  • 화면 Layout 정의, View 생성, Databinding 등은 이곳에 구현함
  • 생명주기 통틀어서 단 한 번만 수행되는 메소드
  • 따라서 Activity 최초 실행에 해야하는 작업을 수행하기에 적합함

2) onStart()

  • Activity가 화면에 표시되기 직전에 호출됨
  • 화면에 진입할 때마다 실행되어야 하는 작업을 이곳에 구현함

3) onResume()

  • Activity가 화면에 보여지는 직후에 호출됨
  • 현재 Activity가 사용자에게 포커스인 되어있는 상태

4) onPause()

  • Activity가 화면에 보여지지 않은 직후에 호출됨
  • 현재 Activity가 사용자에게 포커스아웃 되어있는 상태
  • 다른 Activity가 호출되기 전에 실행되기 때문에 무거운 작업을 수행하지 않도록 주의해야함
  • 영구적인 Data는 이곳에 저장

5) onStop()

  • Activity가 다른 Activity에 의해 100% 가려질 때 호출되는 메소드
  • 홈 키를 누르는 경우, 다른 액티비티로의 이동이 있는 경우가 있음
  • 이 상태에서 Activity가 호출되면, onRestart() 메소드가 호출됨

6) onDestroy()

  • Activity가 완전히 종료되었을 때 호출되는 메소드
  • 사용자: finish(), onBackPressed()(기존 액티비티의 onResume()까지 호출된 후 onDestroy() 호출)
  • 시스템: 메모리부족(프로세스 종료)
  • onStop(), onDestroy() 메소드는 메모리 부족이 발생하면 스킵될 수 있음

7) onRestart()

  • onStop()이 호출된 이후에 다시 기존 Activity로 돌아오는 경우에 호출되는 메소드
  • onRestart()가 호출된 이후 이어서 onStart()가 호출됨

 

액티비티 전환 시 수명주기 콜백 메소드 호출 순서

  • FirstActivity에서 SecondActivity 시작

       1. FirstActivity의 onPause()

       2. SecondActivity의 onCreate() -> onstart() -> onResume()

       3. FirstActivity의 onStop()

  • 단말기의 뒤로가기 버튼 누름

       1. SecondActivity의 onPause()

       2. FirstActivity의 onRestart(), onStart(), onResume()

       3. SecondActivity의 onStop(), onDestroy()

 

 

 

 

 

 

 

 

아직 이해 못 한 것도 많고 생명주기가 많이 어렵다. 계속 공부하면서 이해하도록 노력해야겠다