public List<QiangYu> load() {
BmobQuery<QiangYu> query = new BmobQuery<QiangYu>();
query.findObjects(UiUtils.getContext(), new FindListener<QiangYu>() {
@Override
public void onSuccess(List<QiangYu> list) {
//这个list是不为空的.我想问的是如何把这个list数据在load方法中返回出去.
//因为耗时.这样直接返回是null.
}
}
@Override
public void onError(int arg0, String arg1) {
};
});
//因为onSuccess耗时.这样写,会直接返回null
//有什么办法,可以让onSuccess完成,获取好数据在返回???
return list;
}
高洛峰2017-04-17 17:33:24
不明白你为什么要重新包装一遍,其实Bmob都封装好了的,你有需要的话,就写一个接口回调
public getListListener gll;
//接口
public interface getListListener{
void onSucceed(List<data>);
}
public void load(final getListListener gll){
this.gll=gll;
...
...
Bmob.find(new findListener(){
void onSucceed(List<data> data){
//回调方法
gll.onsucceed(data);
}
...
});
}
//使用:
load(new getListListener(){
void onSuccees(list<data> data){
//得到数据
//写你自己的逻辑.
}
});
经过上面。。。你会发现并没有什么用。。。所以说接口使用Bmob回调接口就好了!不用多此一举!!
高洛峰2017-04-17 17:33:24
1、在异步线程中,进行耗时操作
2、查询结束后,可以用EventBus或者RxBus发送消息到主线程
3、主线程接受event,然后进行刷新
或者
用楼上提到过的RxJava