시배's Android

Compose | ViewCompositionStrategy 본문

Android/Compose

Compose | ViewCompositionStrategy

si8ae 2023. 8. 16. 23:18

ViewCompositionStrategy

Compose UI 뷰인 ComposeView 및 AbstractComposeView와 같은 Compose UI 뷰의 기본 구성을 관리하기 위한 전략입니다. AbstractComposeView.setViewCompositionStrategy를 참조하십시오.

Compose 뷰는 지속적인 작업과 외부 이벤트 소스에 대한 구성 등록을 포함합니다. 이러한 등록은 호스트 뷰가 버려진 후에도 구성이 지속적으로 유지되어 가비지 컬렉션에 적합하지 않은 상태로 남을 수 있습니다. 이러한 리소스와 등록은 AbstractComposeView.disposeComposition을 호출하여 수동으로 언제든지 해제할 수 있으며, 필요할 때 자동으로 새로운 구성이 생성됩니다. ViewCompositionStrategy는 적절한 시기에 구성을 자동으로 폐기하기 위한 전략을 정의합니다.

  • DisposeOnDetachedFromWindow 
    • 뷰가 Window에서 분리(detached) 때마다 구성을 폐기하는 ViewCompositionStrategy입니다
    • ViewGroup.removeView* 를 통해 View가 제거될 때
    • View가 Transition의 일부일 때
    • Activity가 destroy됐을 때 ( onStop 이후, onDestroy 이전 )
  • DisposeOnDetachedFromWindowOrReleasedFromPool (Default)
    • 뷰가 Window에서 분리(detached) 때마다 구성은 자동으로 폐기(disposed)됩니다. 다만, 이러한 폐기는 RecyclerView 같은 풀링 컨테이너의 일부인 경우에는 해당되지 않습니다.
    • 구성이 풀링 컨테이너 내에 있는 경우, 구성은 기본 풀링 컨테이너 자체가 Window에서 분리(detaches) 또는 항목이 폐기되는 경우 (, 풀이 가득 ) 폐기(dispose)됩니다.
  • DisposeOnLifecycleDestroyed
    • 라이프사이클이 파괴될 구성을 폐기하는 ViewCompositionStrategy입니다.
  • DisposeOnViewTreeLifecycleDestroyed
    • 뷰가 연결된 다음 Window findViewTreeLifecycleOwner 의해 반환된 LifecycleOwner 파괴될 구성을 폐기하는 ViewCompositionStrategy입니다.