본문 바로가기
개발/Android

[Android] View LifeCycle 정리

by 1인용 놀이터 2025. 3. 4.
728x90
반응형

View 

안드로이드 UI를 구성하기 위해 사용되는 class.

XML 상으로 구성했던 UI 요소들의 부모객체가 바로 View 인 것이다.

View는 드로잉, 이벤트 처리를 담당하는 UI 구성요소의 기본 클래스이다. View를 상속받아 구현하는 TextView, Button 등 특수 목적을가지고 있는 View를 위젯 또는 컴포넌트라고 부르기도 한다.

 

LifeCycle 단계

안드로이드에서 View(View의 생명주기) 는 액티비티나 프래그먼트에 의존해서 동작한다.
즉, 액티비티나 프래그먼트의 생명주기에 따라 View도 생성되고, 업데이트되고, 사라지는 과정을 거치는 것이다.

 

1. constructor()

💡 View의 생성자로. 모든 뷰는 생성자에 의해 생명주기가 시작됨.

  • addView() 메소드를 갖게 됨

2. onAttachedToWindow()

💡 뷰가 화면(Window)에 추가될 때 호출됨

  • View가 부모 레이아웃에 추가되면 실행됨
  • 예를 들어, 액티비티가 setContentView()를 실행하면 View가 화면에 붙고 이 메서드가 호출

3. onMeasure()

💡 뷰의 크기(Width, Height)를 결정하는 단계

  • 부모 레이아웃이 자식 뷰(View)에게 "너 얼마나 큰지 정해!"라고 요청하는 단계
  • 이 과정에서 View는 자신의 크기를 계산한다.

4. onLayout()

💡 뷰의 위치를 결정하는 단계

  • 뷰의 위치(X, Y 좌표)를 결정하는 과정
  • 부모가 "너 여기 있어야 해!"라고 알려주면, View는 그 위치에 배치됨

5. onDraw()

💡 뷰가 화면에 그려지는 단계

  • 뷰의 모양을 그리고, 배경, 텍스트, 이미지 등을 표시함
  • Canvas 객체를 사용해서 직접 커스텀 뷰를 그릴 수도 있음

6. onDetachedFromWindow()

💡 뷰가 화면에서 제거될 때 호출됨

  • 뷰가 화면에서 사라질 때 실행됨
  • 해당 단계에서 리소스 정리(쓰레드 중지, 리스너 해제 등)를 하면 된다.

View 생명주기 정리

1️⃣ onAttachedToWindow() → 뷰가 부모 레이아웃에 추가됨
2️⃣ onMeasure() → 뷰의 크기 결정
3️⃣ onLayout() → 뷰의 위치 결정
4️⃣ onDraw() → 뷰가 화면에 그려짐
5️⃣ onDetachedFromWindow() → 뷰가 화면에서 제거됨

 

택배에 비교해 보는 View 생명주기

onAttachedToWindow() → 택배가 창고(부모 레이아웃)에 도착
onMeasure() → 택배 크기를 측정
onLayout() → 창고 안에서 택배를 적절한 위치에 배치
onDraw() → 박스에 포장지(내용물)를 그림
onDetachedFromWindow() → 택배가 창고에서 나감 (화면에서 사라짐)

 

결론

View는 액티비티나 프래그먼트가 시작될 때 생성되고, 화면에 표시됨
View의 크기, 위치를 정하고, 화면에 그리는 과정이 있음
View가 더 이상 필요 없을 때 정리됨

728x90
반응형