kinvey客户端调用的onsuccess方法如何同步

时间:2014-09-12 12:33:08

标签: android nullpointerexception null-pointer kinvey

我正在开发一个使用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指针异常而崩溃。

请原谅我糟糕的形成,问我是否要你解释更多。预期的谢谢

1 个答案:

答案 0 :(得分:0)

迟到的答案,但只是在其他人看来的情况下:

从名称 - AsyncAppData可以清楚地看出,获取数据的Kinvey调用是异步执行的。

最好的办法是在onSuccess方法中分配网址。在此之前,您应该显示一个进度对话框,让用户知道发生了什么。