안드로이드 자바 코틀린 기초 지식/안드로이드 기초 지식
Activity LifeCycle ( 생명주기)
Everyday Growing Engineer
2023. 2. 27. 08:42
Activity LifeCycle에는 onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(), onRestart()가 있다.
Activity LifeCycle
1) onCreate()
- 액티비티가 Launch되고 최초 실행될때 호출.
- 생명주기 통틀어서 단 한 번만 수행되는 메소드.
- 필요한 리소스들 초기화
2) onStart()
- Activity가 화면에 표시되기 직전에 호출됨
- 화면에 진입할 때마다 실행되어야 하는 작업을 이곳에 구현함
- BroadcastReceiver는 이 단계에서 등록을 하는것이 좋음.
3) onResume()
- Activity가 화면에 보여지는 직후에 호출됨
- 사용자한테 화면에 보여지고 상호작용하는 메서드이다.
- RecyclerView나 ListView 새로 고침.
- 새로 작성된 내용을 서버에서 불러오려면 여기다 추가. (onCreate는 단 한번만 불러오기 때문에)
4) onPause()
- 사용자가 화면을 떠날 때 시스템이 첫 번째로 이 메서드를 호출한다.
- 현재 Activity가 사용자에게 포커스아웃 되어있는 상태
- 다른 Activity가 호출되기 전에 실행되기 때문에 무거운 작업을 수행하지 않도록 주의해야함
- 일시 정지할 때 필요 없는 리소스 해체하거나 Data는 이곳에 저장 (간단한 데이터 - SharedPreference사용해서)
- 예: 카메라 미리보기, 배터리 수명에 영향을 미칠 숫 있는 모든 리소스를 해제
5) onStop()
- Activity가 다른 Activity에 의해 100% 가려질 때 호출되는 메소드
- 이 상태에서 Activity가 호출되면, onRestart() 메소드가 호출됨
- 이 메서드에서는 앱이 사용자에게 보이지 않는 동안 앱이 필요하지 않는 리소스를 해제하거나 조정해야 한다
- 정보를 데이터베이스에 저장할 적절한 시기를 찾지 못했다면 onStop() 상태일 때 저장
- 예를 들어 애니메이션을 일시중지하거나 세밀한 위치 업데이트에서 대략적인 위치 업데이트로 전환할 수 있습니다
- 또한 onStop()을 사용하여 CPU를 비교적 많이 소모하는 종료 작업을 실행해야 합니다. 예를 들어 정보를 데이터베이스에 저장할 적절한 시기를 찾지 못했다면 onStop() 상태일 때 저장할 수 있습니다.
6) onDestroy()
- Activity가 소멸되기 직전에 호출됨
- Activity가 종료되는 경우
- 사용자: finish(), onBackPressed()
- 시스템: 메모리부족(프로세스 종료)
- onStop(), onDestroy() 메소드는 메모리 부족이 발생하면 스킵될 수 있음
7) onRestart()
- onStop()이 호출된 이후에 다시 기존 Activity로 돌아오는 경우에 호출되는 메소드
- onRestart()가 호출된 이후 이어서 onStart()가 호출됨