관리 메뉴

나만을 위한 블로그

[Manifest-Android] 35. View 생명주기 본문

스터디

[Manifest-Android] 35. View 생명주기

참깨빵위에참깨빵_ 2025. 7. 22. 02:08
728x90
반응형

뷰 생명주기는 TextView, Button 등 View가 생성되고 액티비티 / 프래그먼트에 연결되고 최종적으로 소멸되거나 분리되는 동안 거치는 생명주기 이벤트를 나타낸다.

뷰 생명주기를 이해하면 개발자가 뷰의 초기화, 렌더링, 소멸을 관리하고 사용자 작업 or 시스템 이벤트에 응답해서 뷰 생명주기에 따라 커스텀 뷰 구현, 적절한 때 리소스를 폐기하는 것에 도움이 된다.

 

  1. View 생성 (onAttachedToWindow) : View가 하드코딩 방식으로 인스턴스화되거나 XML 레이아웃에서 인플레이션되는 단계. 리스너 설정 및 데이터 바인딩과 같은 초기 설정 작업이 수행된다. onAttachedToWindow()는 View가 부모 뷰에 추가되고 화면을 렌더링할 준비를 마쳤을 때 호출됨
  2. Layout 단계 (onMeasure, onLayout) : View의 크기, 위치를 측정한다. onMeasure()는 레이아웃 매개변수와 부모 제약 조건에 따라 View의 너비와 높이를 결정한다. 측정 후 onLayout()은 View를 부모 안에 배치해서 표시될 위치를 최종 결정
  3. Drawing 단계 (onDraw) : 크기, 위치가 최종 결정된 후 onDraw()는 텍스트나 이미지와 같은 View의 내용을 Canvas에 렌더링한다. 커스텀 View는 해당 메서드를 재정의해서 커스텀 드로잉 로직 구현 가능
  4. Event 처리 (onTouchEvent, onClick) : 상호 작용하는 View는 여기서 터치 이벤트, 클릭, 제스처 같은 사용자 상호 작용을 처리한다. onTouchEvent(), onClick() 같은 메서드는 이런 이벤트를 처리하고 사용자 입력에 대한 View의 응답을 정의하는 데 사용된다
  5. View 분리 (onDetachedFromWindow) : View가 화면과 부모 ViewGroup에서 제거될 때(액티비티 or 프래그먼트가 소멸 중일 때) onDetachedFromWindow()가 호출된다. 여기선 리소스를 정리하거나 리스너를 분리하는 게 이상적
  6. View 소멸 : View가 더 이상 사용되지 않으면 가비지 컬렉션된다. 개발자는 메모리 누수를 방지하고 성능을 최적화하기 위해 이벤트 리스너, 백그라운드 작업 같은 모든 리소스가 적절하게 해제됐는지 확인해야 함
반응형
Comments