배경지식
Thread
Thread는 동시 작업에 필요한 작업 단위(흐름)이다. 안드로이드의 경우 어플리케이션을 실행하면 main thread(UI thread)가 실행된다. Main thread에서만 UI 변경 작업이 가능하고 사용자가 직접 만든 thread에서는 UI 부분에 접근이 불가능하다.
Handler
Handler는 서로 다른 thread간의 통신을 위한 객체라고 볼 수 있다. Handler는 thread 안에서 정의가 가능하고 위 처럼 사용자가 만든 thread는 UI에 접근이 불가능하다. 하지만 사용자가 정의한 thread 내부의 handler를 통해서 UI 변경 작업이 가능해진다.
Asynctask
Asynctask는 비동기 태스크이다. Thread와 handler를 이용하여 background 작업을 진행하는 대신 asynctask를 이용하면 간편하게 코딩할 수 있다.
Asynctask = Thread + Handler
Asynctask의 메서드
- excute() : asynctask를 상속한 객체를 실행시켜 백그라운드 작업이 수행된다.
- doInBackground() : 새로 만들어진 쓰레드로 백그라운드 작업을 할 수 있다. publishProgress()를 호출할 경우에만 메인 쓰레드에서 UI 작업이 가능하다.
- onPreExcute(), onProgressUpdate(), onPostExcute() : 메인 스레드에서 실행되므로 UI 작업이 가능하다. 각각 백그라운드 작업을 수행 전, 수행 진행 중, 수행 후를 의미한다.
'안드로이드' 카테고리의 다른 글
[안드로이드] 예제:MVVM+AAC를 이용한 RecyclerView 2 (0) | 2020.08.12 |
---|---|
[안드로이드] 예제:MVVM+AAC를 이용한 RecyclerView 1 (1) | 2020.08.12 |
Apache & Tomcat 및 HTTP, Socket (0) | 2020.03.28 |
웹서버 공유기 설정 (0) | 2020.03.25 |
Android + PHP, FCM을 이용한 Push Notification 발생 (0) | 2020.03.24 |