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 ポインター例外が原因でアプリがクラッシュしていました。
私の悪いフォーマットを許してください、あなたが私にもっと説明したいことがあれば私に尋ねてください. 予想通りの感謝