2016-08-27 1 views
0

kinveyコレクションからデータを取得し、それをdbに入れてローカルに変更したいと思います。変更前にすべてのデータがコレクションから取得されていることを確認します。私の問題は、バックグラウンドで実行されるAsyncAppDataを使ってコレクションを取得することで、私のタスクが不可能になることです。AsyncAppDataをKinveyシリアルで作成する

サンプルコードは、プログラミングがどのように動作するか、非同期ではありません、とKinveyは、そのパラダイムを変更する計画はない

//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

を示しています。コードを構築する適切な方法は、メインスレッドではなくonSuccessコールバック内でデータを処理することです。

あなたができることは、コールバック内にイベントフラグを設定し、そのフラグを待っている "//処理の開始点"にウェイターを作成することです。

+0

ありがとうございました。わかった。 2番目のパラグラフを実装する方法を詳しく説明してください。 –

+0

私の専門はKinveyですが、残念ながらJavaプログラミングではありませんので、他の人にベストプラクティスを提供させていただきます。 –

関連する問題