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

Handler.post(new runnalbe...)가 만능이 아니네요.

0 추천
저는 지금껏 핸들러 포스트가 만능인줄 알았습니다.

조금전에 handler.post(new Runnable(){

run(){

//통신작업

}

});

위에 핸들러 포스트에 HTTP커넥션으로 웹페이지를 긁어오는 통신처리를 넣었습니다.

당연히 러네이블 쓰레드라서 가능할줄 알앗는데 처리가 안되네요..

handler.post는 어떨때 써야되는건가요?

정확한 용도를 모르겠네요.
갸아악 (21,260 포인트) 님이 2013년 4월 29일 질문

3개의 답변

0 추천
 
채택된 답변
핸들러는 메세지나 러너블 객체를 큐에 전달하기 위한 객체일뿐입니다.

쓰레드를 직접 생성하는 용도가 아니라 쓰레드간 메시징을 위해 사용되구요,

그리고 핸들러가 생성된 쓰레드에 종속되기때문에 핸들러를 UI쓰레드에서 생성했다면

위의 러너블 객체는 UI쓰레드에서 수행됩니다.

위 예의 러너블 객체는 UI쓰레드가 아닌 별도의 백그라운드 쓰레드를 생성해서 start 시키고,

백그라운드 쓰레드에서 UI쓰레드에 전달해야할 메시지등이 있을 때 핸들러를 통해 전달시키는 방식으로 구현되어야 합니다.
b22n (22,940 포인트) 님이 2013년 4월 29일 답변
갸아악님이 2013년 4월 30일 채택됨
핸들러는 메세지나 러너블 객체를 큐에 전달하기 위한 객체일뿐입니다.
 이부분이 이해가 안가는데 큐가 무엇인지 설명해주실수 있으신가요
0 추천

미약한 지식이지만..

제가알기로는..

handler클래스로 값을 보내줘야 할때 Message.sendmessage 를 사용해서 보내줘야 하는 부분을..

간단하게 처리하기 위해.. handler.post run안에서 사용하는게 아닌가요?

 

http://itnhappy.tistory.com/29

mamongs (4,050 포인트) 님이 2013년 4월 29일 답변
0 추천
처리가 안된다는게 어떤 처리가 안된다는거죠?
위슈 (210 포인트) 님이 2013년 4월 29일 답변
말그대로 HTTP커넥션으로 웹페이지를 읽어오는 네트워크 통신작업 처리가 불가능합니다.
...