으로 나는 클래스 본체가 있다고 가정 .Execute를 문 다음에 AsyncTask를 클래스의 결과를 사용할 수 : (그것은 클래스의 단지 대략적인 디자인 ..)은 내가
class XYZ
{
//Some Code here
submitBTN.setOnClickListener(..){
ABC obj=new ABC();
obj.execute();
Toast(obj.result).show();
}
class ABC extends AsynTask<String,Void,String>{
String result=null;
..
..
doInBackground(..){
..
..
return "success";
}
onPostExecute(String result){
this.result=result;
}
}
}
내 질문 윌 토스트 쇼 "성공이다 "또는"null "이 표시됩니다. 백그라운드에서 다른 스레드를 시작하기 때문에obj.execute는 블로킹 문이거나 그렇지 않습니다. 컨트롤이 .execute 문 다음 명령문으로 이동하거나 백그라운드 스레드가 완료 될 때까지 기다릴 것입니까?
호 불가능을 사용할 수 있습니다. 토스트는 asynctask가 실행되기 전에 호출되며 인증 전에 종료됩니다. AsyncTask의 onPostExecute()에 토스트를 넣어야합니다. – greenapps
AsyncTask가 차단되지 않습니다. 결과는 null이 될 가능성이 높습니다 –
AsyncTask가 별도의 클래스이기 때문에 [OnPostExecute()의 결과를 주 활동으로 가져 오는 방법] 가능한 중복?] (http://stackoverflow.com/questions/12575068/how-to- asynctask-is-a) –