티스토리 뷰
안드로이드 개발을 하다보면 handler를 사용하고 있거나 들어본 적이 있을 것입니다. 스레드의 일들을 메시지 큐에 넣어주기 위한 역할을 하기도 하고, 메인 스레드가 아닌 스레드를 핸들러로 직업을 메시지 큐에 전달할때 많이 보았습니다. 안드로이드 개발을 잘 하기 위해서는 기본 개념들에 대해서 잘 정리하고, 이해하고 있어야 합니다.
Handler 정의
각 핸들러는 쓰레드의 메시지큐와 하나의 쓰레드와 연관되어 있다. 핸들러를 사용하면 스레드의 MessageQueue와 관련된 Message 및 Runnable 객체를 보내고 처리 할 수 있습니다. 각 핸들러 인스턴스는 단일 스레드 및 해당 스레드의 메시지 큐와 연관됩니다. 새 핸들러를 만들면 핸들러를 만드는 스레드의 스레드 / 메시지 큐에 바인딩됩니다. 이때부터 메시지와 실행 파일을 해당 메시지 큐로 전달하고 메시지에서 나올 때 실행합니다.
핸들러의 두 가지 주요 용도
1) 메시지와 실행 가능 파일이 나중에 실행되도록 스케줄 처리를 합니다.
2) (메인 스레드 이외의) 스레드에서 수행 할 작업을 대기열에 추가합니다.
종류
1) post (Runnable) : message queue에 전달하는 메소드
2) postAtTime(java.lang.Runnable, long) : 특정 시간에 message queue에 전달하는 메소드
3) postDelayed (Runnable, Object, long) : 몇초 뒤에 message queue에 전달하는 메소드
4) sendEmptyMessage (int) : Message의 what 필드를 전달하는 메소드
5) sendMessage (Message) : Message 객체를 message queue 전달하는 메소드
6) sendMessageAtTime (Message, long)
7) sendMessageDelayed
Handler를 좀더 잘 이해하기 위해서는 Thread 에 대한 개념도 이해하고 있어야 합니다. 계속해서 정리해서 올리겠습니다.
'Android' 카테고리의 다른 글
[Android] 안드로이드 서비스(Service) 정의 및 구현 방법 정리 (0) | 2020.03.30 |
---|---|
[Android] 안드로이드 네이밍/변수명 규칙 정하기 (0) | 2020.03.29 |
[Android] 안드로이드란 무엇일까요? (0) | 2020.03.20 |
[Android] 안드로이드 액티비티(Activity) 생명주기란? 왜 알아야 되나요? (0) | 2020.03.19 |
[Android] 안드로이드 4대 컴포넌트(구성요소) 정리 (0) | 2020.03.19 |
- Total
- Today
- Yesterday
- 블로그관리하기
- ios
- TextInputLayout
- Swift데이터타입
- git
- IT
- 안드로이드공부
- 개발공부
- codingtest
- 안드로이드
- github
- 네이버웹마스터
- swift
- 구글서치콘솔
- 인증토큰
- 4대컴포넌트
- 인드로이드4대컴포넌트
- Android
- 사이트맵등록방법
- 밑줄색
- AUTH0
- TextInputEditText
- 서비스선언
- 밀리세컨
- 티스토리블로그광고
- 코드스타일
- Swift기초자료
- underline color
- 안드로이드개념
- CI/CD
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |