Handler는 Thread의 MessageQueue와 관련된 Message 및 Runnable 객체를 보내고 처리 할 수 있습니다. 각 Handler 인스턴스는 단일 Thread 및 해당 Thread의 MessageQueue와 연관됩니다. 새로운 Handler를 만들면 Looper에 바인딩됩니다. Message와 Runnable을 해당 Looper의 MessageQueue에 전달하고 해당 Looper의 Thread에서 실행합니다.
Looper는 Thread에 전달된 Message의 실행을 관리하는 Queue이며, 입력이 없을 때 대기하고, 메세지를 전달받으면 해당 메세지를 연결된 Thread에서 처리하게끔 관리한다.
Handler는
- Message와 Runnable의 실행 시점을 관리한다.
- 다른 Thread에서 처리할 작업을 대기열에 추가한다.
Handler에는 아래의 메서드들이 존재하며, 해당 메서드를 통해 Message 및 Runnable 객체를 Handler에 전달할 수 있다. 메서드명을 보면 해당 메서드가 어떤 역할을 하는지 명확하게 알 수 있다. post()의 경우 Runnable객체를 인자로 받아 Handler에 전달한다. sendMessage()는 Message 객체를 인자로 받아 해당 Handler에 전달해주는 역할을 한다. Handler엔 Message를 받아 처리하는 Callback 인터페이스가 있으며, Handler를 구현할 때 해당 Callback을 구현해서 메세지 처리를 하면 된다.
- post()
- postDelayed()
- postAtTime()
- sendMessage()
- sendEmptyMessage()
- sendMessageDelayed()
- sendMessageAtTime()
참고링크:
https://developer.android.com/reference/android/os/Handler
https://developer.android.com/reference/android/os/Looper
'안드로이드' 카테고리의 다른 글
Android - Bottom Dialog (BottomSheetDialogFragment) (0) | 2020.05.23 |
---|---|
Android - Parcelable 정리 (0) | 2020.04.22 |
Android - Xml 파싱(XmlPullParser) (0) | 2020.04.06 |
Android - 화면 당겨서 새로고치는 방법(SwipeRefreshLayout 사용 방법) (0) | 2020.04.03 |
Android Data Binding을 활용한 ViewPager와 TabLayout 연결 (0) | 2020.03.24 |