在启动MainActivity之前,我需要调用4个这样的查询。 我想知道如何处理在后台运行的多个回调,并在所有回调返回我想要的数据时启动MainActivity。
任何人都可以提供一些如何做的代码吗?
ParseQuery query = ParseQuery.getQuery("Ranking");
query.findInBackground(new FindCallback() {
@Override
public void done(List list, ParseException e) {
//do something
}
});
答案 0 :(得分:0)
你不想等待显示你的活动,你可能会得到一个ANR ......但我认为你会显示一个" loading"消息或其他什么。
至于你的多个回调,如果你有一组预定义的回调,你可以使用被检查的布尔标志或使用一个简单的计数器,然后检查回调中的任何一个。例如:
myCallback.queryDone();
然后:
public myCallback implements MyCallback() {
private static volatile int count = 0;
public void queryDone() {
count++;
if (count == 4) {
// start activity here
}
}
}
如果你有不确定数量的回调(例如它可能是3或10),那么你需要建立一个队列或使上面建议的系统更复杂以处理这种变化。