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

AsyncTask 로 구현되어 있는 함수 결과값 나올때 까지 기다리는 방법?

0 추천

안녕하세요. 초보라 질문을 잘하는건지 모르겠는데요.

기존회원 등록을 하는 과정인데 기존에 있는 아이디를 검색 후 그 결과값에 따라서 어떤 액션을 취하려고 합니다.

기존회원 여부에 대한 결과값을 받는 requestMemberExist() 함수가 있고 내부에는 실질적으로 API통신을 하는 

NetworkRun.onRequest() 함수가 있는데 이 함수가 AsyncTask로 구현되어 onSuccess를 오버라이드 해서 결과값을 처리하게끔 되어 있습니다. (저는 Shared Preference 데이터 저장)

제가 원하는 것은 메인 함수쪽에서...간단하게 두 줄로 표현 한다면..

requestMemberExist(); // 회원아이디가 등록되어 있는지 확인하는 API 실행 함수

Toast메시지(request 함수내 NetworkRun.onSuccess내에서 처리한 Shared Preference 데이터)

위와 같습니다. 

문제는 Toast가 끝난 이후에 requestMemberExist 내부 NetworkRun의 onSuccess 가 처리 됩니다. 

onSuccess 처리 이후에 토스트 메시지 결과값을 제대로 받아보려면 어떻게 해야 할까요?

제 문제를 설명하는 것도 어렵네요..;;; 고수님들의 고견을 기다리고 있습니다^^ 감사합니다.

douni327 (130 포인트) 님이 2018년 3월 7일 질문

1개의 답변

+1 추천
서버에서 응답이 늦을 경우 어플이 ANR 상태가 되기 때문에,  

가능하면, 기존대로  async 형식으로 구현을 하시고, 응답 시 이후 동작을 하게 만드시는게 좋을 듯 합니다..

단지.. AsyncTask.get() 를 사용할 순 있다네요..

https://stackoverflow.com/questions/14827532/waiting-till-the-async-task-finish-its-work
익명사용자 님이 2018년 3월 7일 답변
...