在我的应用程序中,单击登录页面中的登录后,我必须调用 3 个 API。我有 3 个 AsyncTask 来完成这个要求。我正在做的是在第一个任务 onPostExcecute() 中调用第二个任务,第三个任务在第二个任务的 onPostExecute() 中调用。
任务A 看起来像:
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);
}
}
}
任务B:
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);
}
}
任务C:
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.
}
}
问题出在登录页面中,屏幕以黑白颜色闪烁。(白色是我的登录页面活动的背景颜色)。我实施的方式是否正确?还是我需要更改代码?请帮帮我。