20230911 Activity LifeCycle

기메단·2023년 9월 11일
0

TIL

목록 보기
40/44

Activity 생명주기

activity 생명 주기를 잘 이해하고 콜백을 잘 구현해야하는 이유

1. 사용자가 앱을 사용하는 도중에 전화가 걸려오거나 다른 앱으로 전환할 때 비정상 종료되는 문제
2. 사용자가 앱을 활발하게 사용하지 않는 경우 귀중한 시스템 리소스가 소비되는 문제
3. 사용자가 앱에서 나갔다가 나중에 돌아왔을 때 사용자의 진행 상태가 저장되지 않는 문제
4. 화면이 가로 방향과 세로 방향 간에 회전할 경우, 비정상 종료되거나 사용자의 진행 상태가 저장되지 않는 문제

이러한 문제들이 발생하지 않도록 예방이 가능하다.

onCreate()

시스템이 먼저 활동을 생성할 때 실행되는 메소드로서, 필수적으로 구현을 해야한다.

ex) 바인딩, viewmodel 연결, 레이아웃 정의 등등 

onCreate() 메서드가 실행되면 onStart(), onResume() 메서드를 호출한다. 

onStart()

화면에 진입할 때마다 실행되어야 하는 코드를 작성  

onResume()

방해되는 이벤트가 발생하면 활동은 일시중지가 되고 onPause() 메서드 호출. 
전화가 온다던가, 카메라를 켰을 경우. 

일시정지 되었다가 재개되면 onResume() 메서드를 다시 호출한다. 

onPause()

방해되는 이벤트가 발생했을 때 호출되는 메서드. 
액티비티가 잠시 일시정지가 되는 상태이기 때문에, 실행할 필요가 없는 기능들의 코드를 작성하면 된다. 
잠깐 실행되는 메서드로써, 무거운 작업을 하면 안된다(data 저장, 호출 등등) 

onStop()

액티비티가 더 이상 표시되지 않고 중단 상태로 들어가면 호출한다. 
무거운 작업 가능. 

onDestroy()

활동이 소멸되기 전에 호출된다. 활동을 종료하거나 구성 변경으로 인해 시스템이 일시적으로 활동이 소멸되는 경우. 
활동이 소멸됨 상태로 전환하면 이 활동의 수명 주기와 연결된 모든 수명 주기 인식 구성요소는 ON_DESTROY 이벤트를 수신해야한다. 

1개의 댓글

comment-user-thumbnail
2023년 9월 12일

어림짐작으로 알고 있던 생명주기가 각각 이런 의미들을 담고 있었군요! 머리에 쏙쏙 들어와요 ㅋㅋ

답글 달기