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;
}
非同步請求不應該這樣寫回傳的,應該用回呼。
寫個接口,在onSuccess裡面調用接口方法,然後使用的時候回調就可以
建議你先學習一下回調這個知識點連結描述
如樓上所說,非同步任務用介面實現,在呼叫介面方法時最好處理下執行緒問題。
rxjava是不錯的選擇
不懂你為什麼要重新包裝一遍,其實Bmob都封裝好了的,你有需要的話,就寫一個介面回呼
經過上面。 。 。你會發現並沒有什麼用。 。 。所以說接口使用Bmob回呼接口就好了!不用多此一舉! !
1、在非同步線程中,進行耗時操作
2、查詢結束後,可以用EventBus或RxBus發送訊息到主執行緒
3、主執行緒接受event,然後進行刷新
或
用樓上提到的RxJava