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

네트워크 처리 관련 질문입니다.

0 추천
현재 웹페이지의 내용을 긁어오는 작업을 하는데요.

 

네트워크처리다보니 따로 AysncTask로 빼거나 쓰레드로 빼야 합니다.

 

그런데 이 처리가 다 끝나면 다 긁은 문자열 값을 리턴받고 싶은데요.

 

예를들어 이런식으로... String result = 작업();

이렇게 result라는곳에 네트워크처리가 다 된 결과값을 메인으로 가져오고 싶습니다.

그런데 AsyncTask나 쓰레드는 리턴을 할 수 없는걸로 알고 있거든요.

이럴때는 어떻게 값을 가져와야 할까요?
갸아악 (21,260 포인트) 님이 2013년 4월 24일 질문

2개의 답변

0 추천
 
채택된 답변
스레드의 경우 핸들러와 같이 사용해야 하는 이유가 바로 이것 때문입니다.

스레드로 작업하신 후 결과 값을 핸들러를 통해 전달하시고

핸들러에서 결과값을 받아서 나머지 작업을 하시면 됩니다.

 

AsyncTask 의 경우 onPostExecute 메소드에서 작업을 처리하시면 됩니다.

 

요즘은 이런 비동기 작업은 Loader로 넘어가는 추세 입니다.

Loader도 한번 보시기 바랍니다.
원조안드로이드 (58,190 포인트) 님이 2013년 4월 24일 답변
갸아악님이 2013년 4월 25일 채택됨
0 추천
reusult를 전역변수로 설정한 후에 그 쪽에 들어가는 식으로 하셔야 할것 같네요.

 혹시 값을 받으신다음에 다른작업이 순차적으로 실행되어야 하는 것이라면

if( result != null)
  실행...

부분을 넣어주시고

그작업이 끝나면 다시 result = null; 해주시고 실행되도록 해주셔야 할 것같습니다
밉샹 (500 포인트) 님이 2013년 4월 24일 답변
...