Я разрабатываю приложение, используя Kinvey в качестве бэкэнда. Проблема, с которой я сталкиваюсь, заключается в том, что когда я вызываю запрос kinvey appData, элемент управления не переходит в метод onsuccess вызова kinvey и возвращается обратно в место вызывающего метода. Вот мой основной класс, в котором я вызываю функцию, у которой есть вызов клиента 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");
}
}
});
}
но управление возвращается к методу oncreate сразу после выполнения вызова kinvey и не переходит к методу onSuccess. После выполнения всего метода oncreate он возвращается к onSuccess. но до этого приложение вылетало из-за исключения указателя NUll.
простите мое плохое форматирование, спросите меня, хотите ли вы, чтобы я объяснил больше. Предварительная благодарность