일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리사이클러뷰
- 플로이드워셜
- appcompatactivity
- 뷰홀더
- 내부 단편화
- Kotlin
- flutter
- 자이고트
- 물리 메모리
- apk 빌드 과정
- 절대 주소
- AsyncListDiffer
- Dispatchers
- 디자인 패턴
- 데코레이터 패턴
- 리사이클러뷰풀
- viewModelScope
- 안드로이드
- NestedScrollView
- appcompatacitivity
- 운영체제
- http발전과정
- Android
- GetX
- recyclerview
- 프로세스
- http 역사
- DiffUtil
- 상태관리
- AAC
- Today
- Total
hong's android
[안드로이드] Handler, Content Provider, xml 레이아웃 본문
Handler
메인 스레드는 ui 스레드이고 다른 스레드에서 ui 처리를 하지 못하고 핸들러를 사용해야한다.
핸들러는 Message Queue, looper에 의존적 큐와 루퍼를 통해서 다른 스레드의 메시지를 처리할 수 있다.
*동기화 이슈를 차단하기위해 메인 스레드에서만 Ui를 처리한다. 동시에 같은 뷰 처리를 하면 문제가 생기기 때문에
워커 스레드는 메인 스레드에서 만든 핸들러의 sendmessage()를 통해 변경하고자 하는 내용을 담는다.
핸들러는 Message Queue에 해당 메시지를 추가하고 메인 스레드의 looper는 차례대로 Message를 꺼내고 다시 핸들러의 handleMessage()로 전달된다. handleMessage()도 메인 스레드에서 생성된것이기 때문에 메인스레드에서 메시지를 처리한다.
이때 Message가 필요할 때 새로운 Message 객체를 생성하면 성능상 이슈가 생길 수 있기에 안드로이드 시스템에서 제공하는 Message Pool 객체를 재사용 하게 된다.
Content Provider
다른 앱이 자신의 앱의 데이터에 접근 할 수 있도록 해주는 컴포넌트
Content Resolver
Content Provider를 사용하기 위해서 Content Redsolver 이용한다.
-> 구현 방법
만약에 외부 앱이 특정앱의 데이터가 필요하다면 Content Resolver를 통해 uri를 보내고, 해당 앱은 uri를 해석해서 데이터를 반환해준다.
xml 레이아웃 왜 사용할까?
ui요소를 따로 분리 할 수 있고, 레이아웃 구성요소들의 구조를 보기 편리해서 재사용성, 유지보수가 편해진다.
마크업 언어이다. 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어
'Android > Android' 카테고리의 다른 글
[안드로이드] Pendingintent (0) | 2023.01.31 |
---|---|
[안드로이드] View lifecycle (0) | 2023.01.16 |
[안드로이드] 자이고트 (0) | 2023.01.13 |
[안드로이드] 포어그라운드 서비스 VS 백그라운드 서비스 (0) | 2023.01.10 |
[안드로이드] Weak Reference VS Strong Reference (0) | 2023.01.09 |