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

Retorfit 동기/비동기

0 추천
retrofit으로 Login을 구현하고 있습니다.

server에 id, pw값을 보내고, string으로 결과를 받는 간단한 통신인데요,

 

결과값을 받아서 승인/거절을 구분해야 하기에 동기식으로 처리했습니다.

그런데 android에서는 network작업을 할때 무조건 작업 thread에서 처리해야 하기 때문에

main thread가 network통신 결과를 받기도 전에 실행되는 문제가 있습니다.

(한마디로 일 시켜놓고 자기갈길 계속 가는건데.. )

 

결국 임의로 약 1초정도 sleep() 걸어놓고 network 통신을 할 동안 시간을 벌어두는 식으로 처리해서 해결했는데요.

이도 임시방편이고 여러가지 문제점이 발생할 수 있을것 같습니다.

(network 상황에 따라 통신이 생각보다 오래걸려서 sleep()시간 보다 더 늦게 통신할수도 있고요.)

 

현업에서는 이럴때 실제로 어떻게 처리하는지가 궁금합니다.

login에서는 아예 retrofit을 잘 사용하지 않나요?
uuni (770 포인트) 님이 2017년 2월 1일 질문

1개의 답변

+1 추천
비동기 작업을 시작함과 동시에

main 스레드에서는 progress등의 다이얼로그를 띄운 후

비동기 작업이 끝나는 콜백을 받아서

ui 처리를 합니다

retrofit는 사용해보지 않았지만

asynctask 사용할때 이렇게 했어요.
모나미153 (17,540 포인트) 님이 2017년 2월 6일 답변
...