1

Kinvey をバックエンドとして使用してアプリを開発しています。私が得ている問題は、kinvey appData リクエストを呼び出すと、コントロールが kinvey 呼び出しの onsuccess メソッドに入らず、呼び出し元のメソッドの場所に戻ることです。これは、データをフェッチするためのkinveyクライアント呼び出しを持つ関数を呼び出している私のメインクラスです。

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ac_image_list);
    // kinvey login here//

     // here is the function that fetch my data from kinvey
     GetAllCategory();

    imageUrls=urls // this is the assignment that cause Null pointer Exception

    }

ここに私の GetAllCategories 関数があります

        public void GetAllCategory(){
       AsyncAppData<EntityCategories> myEvents=mKinveyClient.appData("categories",  EntityCategories.class);                                      
       myEvents.get(new Query(), new KinveyListCallback<EntityCategories>(){
       @Override
        public void onFailure(Throwable error) {
            // TODO Auto-generated method stub
            Log.e(TAG, "failed to save event data", error);
        }

        @Override
        public void onSuccess(EntityCategories[] result1) {
            // TODO Auto-generated method stub

        //  Log.e(TAG,"Name is "+result1[0].get("name"));
        //  Log.e(TAG,"type is"+result1[0].get("type"));

            categories=result1;
            //onPrintCategoryClick();
        for(int i=0;i<categories.length;i++){

            imageUrls[i]=(String) categories[i].get("icon");

        }

        }


    });
    }

しかし、kinvey 呼び出しを実行した直後に制御が oncreate メソッドに戻り、onSuccess メソッドには移動しません。oncreate メソッド全体を実行した後、onSuccess に戻ります。しかし、それまでは、NUll ポインター例外が原因でアプリがクラッシュしていました。

私の悪いフォーマットを許してください、あなたが私にもっと説明したいことがあれば私に尋ねてください. 予想通りの感謝

4

1 に答える 1

0

遅い答えですが、他の誰かが見ている場合に備えて:

AsyncAppData という名前から明らかなように、データを取得するための Kinvey 呼び出しは非同期で実行されます。

最善の方法は、onSuccess メソッドで URL を割り当てることです。それまでは、進行状況ダイアログを表示して、ユーザーに何が起こっているかを知らせる必要があります。

于 2015-07-28T06:14:24.953 に答える