내 응용 프로그램에서 로그인 페이지에서 로그인을 클릭하면 3 API를 호출해야합니다. 이 요구 사항을 수행하려면 3 개의 AsyncTask가 있어야합니다. 내가하고있는 일은 onPostExcecute()의 첫 번째 작업에서 두 번째 작업을 호출하고 세 번째 작업은 두 번째 작업의 onPostExecute()에서 호출합니다.호출 Asynctask 지연 생성
private class TaskA extends AsyncTask<Void, Void, ListA> {
@Override
protected void onPreExecute() {
}
@Override
protected ListA doInBackground(Void... params) {
ListA listA;//its an arraylist
listA = //calling my API
if(listA != null) {
//writing listA as serialized into sdcard.
}
return listA;
}
@Override
protected void onPostExecute(ListA listA) {
for(ListAValues value : listA) {
new TaskB().execute(value);
}
}
}
TaskB :
private class TaskB extends AsyncTask<ListA, Void, ListB> {
@Override
protected void onPreExecute() {
}
@Override
protected ListB doInBackground(ListA... params) {
ListB listB;//its an arraylist
listB = //calling my API
if(listB != null) {
//writing listB as serialized into sdcard.
}
return listB;
}
@Override
protected void onPostExecute(ListB listB) {
new TaskC().execute(listB);
}
}
TaskC : 문제는 방문 페이지에
private class TaskC extends AsyncTask<ListB, Void, ListC> {
@Override
protected void onPreExecute() {
}
@Override
protected ListC doInBackground(ListB... params) {
ListC listC;//its an arraylist
listC = //calling my API
if(listC != null) {
//writing listC as serialized into sdcard.
}
return listC;
}
@Override
protected void onPostExecute(ListC listC) {
//moving to my landing page.
}
}
, 화면이 흑백 색으로 깜박
TaskA는 것 같습니다. (흰색은 내 방문 페이지 활동의 배경색입니다.) 내가 구현하는 방식이 옳은가요? 또는 코드를 변경해야합니까? 제발 도와주세요.
나는 이전에 시작한 작업을 검사하기 위해'AsyncTask.Status'를 구현해야한다고 생각합니다. 새 작업을 시작하기 전에 이전 작업의 상태를 확인하십시오. 아마도 도움이 될 것입니다. –