私のアプリケーションでは、ログインページで[ログイン]をクリックすると、3つのAPIを呼び出す必要があります。この要件を実行するための3つのAsyncTaskがあります。私が行っているのは、1番目のタスクonPostExcecute()内で2番目のタスクを呼び出し、3番目のタスクを2番目のタスクのonPostExecute()内で呼び出すことです。
TaskAは次のようになります。
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.
}
}
問題はランディングページにあり、画面が白黒で点滅しています(白色はランディングページアクティビティの背景色です)。私が実装している方法は正しいですか?または、コードを変更する必要がありますか?私を助けてください。