我的英语不是最好的,所以我提前为此道歉。
我的情况如下,我正在开发一个Android应用程序并且我有一个异步任务,并且在 doInBackground 方法中有以下代码:
@Override
protected Boolean doInBackground(String... params) {
getFirebaseUserChannels(new ResultListener<List<Channel>>() {
@Override
public void finish(List<Channel> firebaseUserChannels) {
if (firebaseUserChannels.isEmpty()) {
getFirebaseChannels(new ResultListener<List<Canal>>() {
@Override
public void finish(List<Channel> firebaseChannels) {
saveChannelsSQLDatabase(firebaseChannels);
saveChannelsFirebaseDatabase(firebaseChannels);
}
});
} else {
saveChannelsSQLDatabase(canalesUsuarioFB);
}
}
});
return true;
}
因此,方法“ getFirebaseUserChannels ”是一种异步方法,在响应时会抛出列表,并且该列表已准备好使用它,我必须评估它并使用它。 但是如您所知,java执行异步方法并一直持续到 返回 。
我希望“doInBackground”在所有异步方法执行结束之前不会继续执行。
那么,我怎么能这样做?管理这种情况的最佳方法是什么?
答案 0 :(得分:0)
管理这种情况的最佳方法是什么?
完全摆脱AsyncTask
。有任何代码要执行AsyncTask
,只需致电getFirebaseUserChannels()
。