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

안드로이드 통신처리시 구조에 대한 질문입니다.

0 추천
안녕하세요.

구조적으로 궁금한게 있습니다.

예를들어 캐쉬차감 처리를 할때

웹서버가 존재하는 상황에서 웹으로 캐쉬를 얼만큼 차감한다고 호출을 하고

차감이 정상적으로 되었는지 리절트값이 오면 그때 다음 작업을 진행하려 합니다.

그런데 안드로이드에서는 네트워크 통신을 쓰레드 내에서만 처리할 수 잇는데

이 캐쉬차감 부분만 쓰레드로 감싸고 싶은데요

그렇게 하면

aictivity..

작업...

Thread th = new Thread(cashConsume);

th.start;

작업2...

작업3..

 

Runnable cashConsume = new Runnalbe(){

run(){

...차감

}

}

 

위와 같이 될 캐쉬차감하는 부분이 쓰레드라 호출하고 바로 다음구문으로 넘어가버릴텐데

그럼 캐쉬차감이 정상적으로 되었는지 확인하기 전에 벌써 다음구문으로 넘어가는 상황이 생기는데요

이런 부분에선 어떻게 구조를 잡아야 깔끔할가요?

조언부탁드립니다.
갸아악 (21,260 포인트) 님이 2014년 10월 15일 질문

2개의 답변

+1 추천
이런 경우에 쓰라고 AsyncTask가 있는 겁니다.
익명사용자 님이 2014년 10월 15일 답변
전 runnable로 처리하는데 별로 좋은 방법이 아닌가요?
제가 질문에 소스코드 첨부해서 다시 올릴께요
0 추천
그냥 콜백이나 옵저버패턴써서 네트워크 스레드에서 result 올때까지 메인스레드 대기타면 안좋나요?

반드시 result올때까지 다음 구문으로 절대 넘어 가면 안된다면야 프로그래스돌리면서

메인스레드 대기시켜도 상관없지 않나요?
익명사용자 님이 2014년 10월 15일 답변
...