본문 바로가기
Application/Android Studio

[안드로이드 활동 수명 주기] #2. Fragment

by junnykim 2023. 11. 22.

Activity 이해했으니까 Fragment에 대해서도 알아보자.

 

이건 활동 수명주기라고 할 수 있나? 그냥 문서에 Fragment라고 적혀있음....

아마 그냥 사용방법인 것 같은데 이게 뭐 수명주기지 뭐 ㅋㅎ

 

Fragment?

프래그먼트는 FragmentActivity 내의 어떤 동작 또는 사용자 인터페이스의 일부를 나타낸다. 여러 개의 프래그먼트를 하나의 액티비티에 결합하여 창이 여러 개인 UI를 빌드할 수 있고, 하나의 프래그먼트를 여러 액티비티에서 재사용할 수 있다!

즉, 프래그먼트는 액티비티의 모듈식 섹션이라고 생각하면 된다. 자체적인 수명 주기를 가지고, 자체 입력 이벤트를 수신하고, 액티비티 실행 중에 추가 및 삭제가 가능하다.

 

프래그먼트는 항상 액티비티 내에서 호스팅되어야 하고, 해당 프래그먼트의 수명 주기는 호스트 액티비티의 수명 주기에 직접적으로 영향을 받는다. 즉 액티비티가 일시정지 되는 경우, 그 안의 모든 프래그먼트도 일시정지되고, 액티비티가 소멸되면 모든 프래그먼트도 마찬가지로 소멸된다. 

 

프래그먼트를 생성하려면 Fragment의 하위 클래스를 생성해야 한다. Activity와 아주 유사해 보인다.

 

1. onAttach() 

프래그먼트가 액티비티에 붙을 때 호출된다.

 

2. onCreate() 

프래그먼트를 생성할 때 시스템에서 이것을 호출한다. 즉, 프래그먼트가 액티비티의 호출을 받아 생성된다.

프래그먼트의 기본 구성 요소 중 프래그먼트가 일시정지되거나 중단되었다가 재개되었을 때 유지하고자 하는 것을 초기해야 한다. 

UI초기화는 불가능하다.

 

3. onCreateView()

프래그먼트가 자신의 사용자 인터페이스를 처음으로 그릴 시간이 되면 호출한다.

프래그먼트에 맞는 UI를 그리려면 메서드에서 View를 반환해야 한다.

프래그먼트가 UI를 제공하지 않으면 null을 반환하면 된다.

 

4. onActivityCreated()

액티비티의 onCreate() 메서드가 반환될 때 호출된다.

 

5. onStart()

사용자에게 보일 수 있을 때 호출한다.

Activity와 비슷

 

6. onResume()

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

 

7. onPause()

사용자가 프래그먼트를 떠난다는 것을 나타내는 첫 번째 신호이다. (항상 소멸 중이라는 것을 의미하지는 않는다.)

현재 사용자 세션을 넘어 지속되어야 하는 변경 사항을 커밋한다.

 

8. onStop()

프래그먼트가 더 이상 화면에 보이지 않게 되면 호출한다.

부모 액티비티, 프래그먼트가 중단될 때, 상태가 저장될 때 호출한다.

 

9. onDestroyView()

프래그먼트가 화면으로부터 벗어났을 경우 호출한다.

 

10. onDestroy()

프래그먼트가 제거되거나 destory 됐을 경우 호출

 

11. onDetach()

프래그먼트가 액티비티로부터 해제될 때 호출된다.

 

 

 

 

참고 :

https://developer.android.com/guide/components/fragments?hl=ko

https://velog.io/@evergreen_tree/Android-%ED%94%84%EB%9E%98%EA%B7%B8%EB%A8%BC%ED%8A%B8-%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0

'Application > Android Studio' 카테고리의 다른 글

[언어] Java VS Kotlin  (0) 2023.11.22
[안드로이드 활동 수명 주기] #1. Activiy  (1) 2023.11.22
[Xml] 오른쪽 정렬하기  (0) 2023.07.18

댓글