Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 멤버변수
- 객체
- 자바 다형성
- rxjava cold observable
- 스택 자바 코드
- 안드로이드 os 구조
- 플러터 설치 2022
- ar vr 차이
- 안드로이드 라이선스 종류
- 안드로이드 유닛 테스트
- 안드로이드 유닛테스트란
- jvm이란
- 안드로이드 유닛 테스트 예시
- 큐 자바 코드
- 스택 큐 차이
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 라이선스
- ANR이란
- android ar 개발
- Rxjava Observable
- 안드로이드 레트로핏 사용법
- 2022 플러터 설치
- rxjava hot observable
- android retrofit login
- 서비스 vs 쓰레드
- 클래스
- 서비스 쓰레드 차이
- rxjava disposable
- jvm 작동 원리
- 안드로이드 레트로핏 crud
Archives
- Today
- Total
나만을 위한 블로그
[Manifest-Android] 35. View 생명주기 본문
728x90
반응형
뷰 생명주기는 TextView, Button 등 View가 생성되고 액티비티 / 프래그먼트에 연결되고 최종적으로 소멸되거나 분리되는 동안 거치는 생명주기 이벤트를 나타낸다.
뷰 생명주기를 이해하면 개발자가 뷰의 초기화, 렌더링, 소멸을 관리하고 사용자 작업 or 시스템 이벤트에 응답해서 뷰 생명주기에 따라 커스텀 뷰 구현, 적절한 때 리소스를 폐기하는 것에 도움이 된다.
- View 생성 (onAttachedToWindow) : View가 하드코딩 방식으로 인스턴스화되거나 XML 레이아웃에서 인플레이션되는 단계. 리스너 설정 및 데이터 바인딩과 같은 초기 설정 작업이 수행된다. onAttachedToWindow()는 View가 부모 뷰에 추가되고 화면을 렌더링할 준비를 마쳤을 때 호출됨
- Layout 단계 (onMeasure, onLayout) : View의 크기, 위치를 측정한다. onMeasure()는 레이아웃 매개변수와 부모 제약 조건에 따라 View의 너비와 높이를 결정한다. 측정 후 onLayout()은 View를 부모 안에 배치해서 표시될 위치를 최종 결정
- Drawing 단계 (onDraw) : 크기, 위치가 최종 결정된 후 onDraw()는 텍스트나 이미지와 같은 View의 내용을 Canvas에 렌더링한다. 커스텀 View는 해당 메서드를 재정의해서 커스텀 드로잉 로직 구현 가능
- Event 처리 (onTouchEvent, onClick) : 상호 작용하는 View는 여기서 터치 이벤트, 클릭, 제스처 같은 사용자 상호 작용을 처리한다. onTouchEvent(), onClick() 같은 메서드는 이런 이벤트를 처리하고 사용자 입력에 대한 View의 응답을 정의하는 데 사용된다
- View 분리 (onDetachedFromWindow) : View가 화면과 부모 ViewGroup에서 제거될 때(액티비티 or 프래그먼트가 소멸 중일 때) onDetachedFromWindow()가 호출된다. 여기선 리소스를 정리하거나 리스너를 분리하는 게 이상적
- View 소멸 : View가 더 이상 사용되지 않으면 가비지 컬렉션된다. 개발자는 메모리 누수를 방지하고 성능을 최적화하기 위해 이벤트 리스너, 백그라운드 작업 같은 모든 리소스가 적절하게 해제됐는지 확인해야 함
반응형
'스터디' 카테고리의 다른 글
[Manifest-Android] 37. View, ViewGroup의 차이 (0) | 2025.07.29 |
---|---|
[Manifest-Android] 36. findViewTreeLifecycleOwner()의 역할 (0) | 2025.07.29 |
[Manifest-Android] 34. 4대 컴포넌트가 4대 컴포넌트로 불리는 이유 (0) | 2025.07.22 |
[Manifest-Android] 33. 앱 프로세스, 안드 OS의 관리 방법 (0) | 2025.07.22 |
[Manifest-Android] 32. 앱 용량 줄이기 (0) | 2025.07.22 |
Comments