2016-08-27 43 views
0

我想從kinvey集合中獲取數據,將其放入一個數據庫中,然後在本地進行修改。我想確保所有數據都是在收集之前從任何修改中獲取的。我的問題是,獲取集合是通過在後臺運行的AsyncAppData完成的,這使我的任務變得不可能。在Kinvey中創建AsyncAppData序列

的樣本代碼顯示

//getting data 
ArrayList<String> runfunc = new ArrayList<String>();  
final AsyncAppData<EventEntityWhy> myevents4 = mKinveyClient.appData("WhyWorldTemp", EventEntityWhy.class); 
    myevents4.get(new KinveyListCallback<EventEntityWhy>() { 
     @Override 
     public void onSuccess(EventEntityWhy[]){ 
      for (EventEntityWhy x1 : result) { 
       String temp1 = (String) x1.get("whyindex"); 
       runfunc.add(temp1) 
      } 
     } 
     } 
//then processing will start 
//runfunc array will be processed here 

回答

1

這不是如何異步編程工作,並Kinvey有沒有計劃改變這種格局。構建代碼的正確方法是在onSuccess回調中處理數據,而不是在主線程中處理數據。

你可以做的是在回調中設置一個事件標誌,然後在你的「//處理將開始」點創建一個等待該標誌的服務員。

+0

謝謝。我知道了。請您詳細解釋如何實施第二段。 –

+0

我的專業是Kinvey,但不幸的是不是Java編程,所以我會讓其他人提供一個最佳實踐。 –