Activity
안드로이드 시스템의 4대 컴포넌트 중 하나로 사용자와 상호작용을 하는 UI를 제공하는데 사용됩니다.
Activity는 일반적으로 화면 전환, UI 배치, Intent 처리 등의 작업을 수행합니다. 예를 들어, 앱이 시작할 때 로그인 화면을 보여주거나, 메인 화면으로 이동 시 데이터를 받아오는 등의 역할을 합니다.
Activity는 AndroidManifest.xml 파일에 등록되야 하며, Intent를 사용하여 화면 전환을 할 수 있습니다.
Activity 생명 주기
Activity는 안드로이드에서 생명 주기를 가집니다.
생명주기는 Activity의 상태 변화를 나타내는데, 이는 Activity가 시스템 리소스를 효율적으로 사용할 수 있도록 해줍니다.
- onCreate() - 액티비티가 생성되면서 호출되는 메소드입니다. 이 단계에서는 액티비티의 인터페이스와 데이터를 초기화합니다.
- onStart() - onCreate() 이후에 호출되는 메소드입니다. 액티비티가 사용자에게 보여지기 전에 호출됩니다.
- onResume() - onStart() 이후에 호출되는 메소드입니다. 액티비티가 사용자와 상호작용하기 위해 활성화되며, 이 상태에서는 액티비티가 최상위에 위치합니다.
- onPause() - 액티비티가 일시 중지될 때 호출되는 메소드입니다. 다른 액티비티가 보여지는 상태로 전환될 때 호출됩니다.
- onStop() - onPause() 이후에 호출되는 메소드입니다. 액티비티가 화면에서 완전히 가려지거나, 액티비티가 종료될 때 호출됩니다.
- onRestart() - onStop() 이후에 호출되는 메소드입니다. 액티비티가 다시 시작될 때 호출됩니다.
- onDestroy() - 액티비티가 종료될 때 호출되는 메소드입니다. 액티비티에서 사용한 리소스를 해제하고, 액티비티와 관련된 모든 것을 종료합니다.
Fragment
Fragment는 Activity의 화면을 구성하는 작은 모듈화된 조각입니다.
하나의 Activity안에서 여러 개의 Fragment를 조합하여 하나의 화면을 구성할 수 있으며, 이를 통해 더욱 유연하고 재사용성이 높은 UI를 구현할 수 있습니다.
Fragment는 Activity와 달리 AndroidManifest.xml 파일에 등록되지 않으며, FragmentManager를 사용하여 Activity 안에서 추가/삭제/교체할 수 있습니다.
Fragment 생명주기
Activity와 마찬가지로 Fragment도 생명 주기를 가집니다.
Fragment는 Activity와 다르게 자체적으로 화면을 가지지 않기 때문에 Fragment의 생명 주기는 Activity의 생명 주기와 밀접한 관련이 있습니다. 예를 들어, Activit가 중지되거나 종료되면 Fragment도 같이 중지되거나 종료됩니다.
Fragment의 생명 주기를 이해하면, Activity와 Fragment를 효과적으로 구성하여 다양한 UI를 구현할 수 있습니다.
- onAttach() - Fragment가 액티비티에 연결될 때 호출됩니다.
- onCreate() - Fragment가 생성될 때 호출됩니다. 이 단계에서는 Fragment의 인터페이스와 데이터를 초기화합니다.
- onCreateView() - Fragment의 레이아웃을 생성하고, 뷰를 그리는 메소드입니다.
- onViewCreated() - onCreateView()에서 반환된 View 객체는 onViewCreate() 파라미터로 전달됩니다. 이 때부터 Lifecycle이 INITIALIZED 상태로 업데이트 됐기 때문에 View의 초기값을 설정하거나 LiveData 옵저빙 등을 해주는 것 이 좋습니다.
- onViewStateRestored() - 저장한 모든 state 값이 Fragment의 View 계층구조에 복원됐을 때 호출됩니다. 이 때 Lifecycle은 INITIALIZED에서 CREATED로 변경됐음을 알립니다.
- onStart() - Fragment가 사용자에게 보여지기 전에 호출됩니다.
- onResume() - Fragment가 활성화되며 사용자와 상호작용하기 위해 활성화됩니다.
- onPause() - Fragment가 일시 중지될 때 호출됩니다. 다른 Fragment가 보여지는 상태로 전환될 때 호출됩니다.
- onStop() - Fragment가 화면에서 완전히 가려지거나, 액티비티가 onStop() 상태로 전환될 때 호출됩니다.
- onDestroyView() - Fragment가 제거될 때 호출됩니다. 이 메소드에서는 Fragment에 포함된 뷰를 제거합니다.
- onDestroy() - Fragment가 제거될 때 호출됩니다. 이 메소드에서는 Fragment에서 사용한 리소스를 해제합니다.
- onDetach() - Fragment가 액티비티에서 분리될 때 호출됩니다.
'AndroidStudio' 카테고리의 다른 글
[Android] MVC 패턴 (Model - View - Controller) (0) | 2023.08.25 |
---|---|
[Android][Kotlin] ToolBar (1) | 2023.07.07 |