*/Android

[안드로이드] Activity, Fragment LifeCycle

sssbin 2023. 3. 6. 18:52

 

1. Activity LifeCycle

 

onCreate()

- 필수적으로 구현해야 한다.

- 액티비티가 처음 생성되었을 때 호출된다. (딱 한 번만 호출된다.)

- XML, 멤버 변수 정의, 일부 UI 구성 등을 설정한다.

 

onStart()

- 활성 상태에 들어가면 호출된다.

- 액티비티가 화면에 제대로 표시되기 직전에 호출된다. (나갔다가 들어오면 또 호출된다.)

- 주로 UI를 관리하는 코드를 초기화한다.

- 빠르게 완료되고 바로 onResume()을 호출한다.

 

onResume()

- 액티비티가 사용자와 상호작용이 가능해질 때 호출된다.

- 어떤 이벤트가 발생하여 앱에서 포커스가 떠날 때까지 이 상태에 머무른다.

- 생명주기 구성요소가 포그라운드에서 사용자에게 보이는 동안 실행해야 하는 모든 기능을 활성화한다.

- 방해 이벤트가 발생하면 일시중지 상태에 들어가고, 시스템이 onPause()를 호출한다.

 

onPause()

- 액티비티의 일부가 가려지거나 투명하게 보이는 경우 호출된다. (사용자가 화면을 떠날 때)

- 포그라운드에 있지 않을 때 실행할 필요가 없는 기능을 모두 정지할 수 있다.

- 사용자 데이터를 저장하거나, 네트워크를 호출하거나, 데이터베이스 트랜잭션을 실행하는 등의 작업을 수행하면 안 된다. 무거운 작업은 onStop()에서 실행하도록 한다.

 

onStop()

- 액티비티가 완전히 사용자에게 보이지 않을 때 호출된다.

- 앱이 사용자에게 보이지 않는 동안 필요하지 않은 리소스를 해제하거나 조정해야 한다.

 

onDestroy()

- 액티비티가 소멸되기 전에 호출된다.

  1) 활동이 종료되는 경우

  2) 구성 변경으로 인해 시스템이 일시적으로 활동을 소멸시키는 경우

- 해제되지 않은 모든 리소스를 해제해야 한다.

 

onRestart()

- 액티비티가 완전히 사라졌다가 다시 보이기 시작할 때 호출된다. (onStop() 상태에 있던 화면이 다시 접근했을 때)

 

 

2. Fragment LifeCycle

 

onAttach(Activity)

- 액티비티에서 프래그먼트가 호출될 때 최초 한 번 호출된다.

 

onCreate(Bundle)

- 프래그먼트가 생성될 때 호출된다.

 

onCreateView(LayoutInflater, ViewGroup, Bundle)

- 뷰를 생성할 때 호출된다.

 

onActivityCreated(Bundle)

- 액티비티에서 onCreate()가 호출된 프래그먼트에서 호출된다.

 

onStart()

- 프래그먼트가 사용자에게 보여지기 직전 호출된다.

 

onResume()

- 프래그먼트가 사용자와 상호작용할 수 있는 상태일 때 호출된다.

 

onPause()

- 화면의 일부가 가려졌을 때 호출된다.

 

onStop()

- 프래그먼트가 화면에서 사라졌을 때 호출된다.

 

onDestroyView()

- 프래그먼트의 뷰가 없어질 때 호출된다.

 

onDestroy()

- 프래그먼트가 제거될 때 호출된다.

 

onDetach()

- 프래그먼트가 액티비티와 연결이 종료될 때 호출된다.