마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 asynctask thread

0 추천
한가지만 더 여쭤봅니다.
서로 다른 클래스(액티비티)에서 액티비티마다 메인스레드가 다른건가요..?
아니면 액티비티가 달라도 mainActivity에서 시작하는 스레드가 메인이 되는건가요?
mainActivity에서 시작하는 스레드만 메인이 된다면, handler를 사용하여 다른 액티비티 UI를 어떻게 관여하는지 알고 싶습니다..

onPreExecute에서 핸들러 메시지를 보낸 뒤 쓰레드 처리를 하는건가요?
헬프미 (5,430 포인트) 님이 2016년 9월 22일 질문

1개의 답변

+1 추천
Activity마다의 메인스레드라기 보다는 프로세스자체에 Looper라는것이 존재하는데

Handler로부터 받은 Message를 수행해주는것이 Looper이고 Handler는 Looper에게 Message를 전달하기 위한 수단입니다.

Looper의 static 함수로 getMainLooper가 존재하는것을 보면 Activity마다 다른 Looper를 갖는것이 아닌 1개의 메세지큐 형식인 것은 분명한것 같습니다.

AsyncTask도 내부적으로 Handler를 갖기 때문에 특정 Message를 Looper로 보내고 그 Looper에서 Message를 수행하는 시점이 onPreExecute함수가 실행되는 시점이 되는것이겠죠?

Handler Thread 개념에 대해서 구체적으로 공부해보고 싶으신거 같으신데 https://realm.io/kr/news/android-thread-looper-handler/ 여기 링크 들어가 보시면 자세하게 설명이 나와 있으니 참고해보세요~
Development Guy (70,570 포인트) 님이 2016년 9월 22일 답변
감사합니다.........
...