2014-09-12 4 views
1

Kinvey를 백엔드로 사용하여 응용 프로그램을 개발 중입니다. 내가 얻는 문제는 내가 kinvey appData 요청을 호출 할 때 컨트롤이 kinvey 호출의 onsuccess 메서드로 들어가서 호출 메서드 위치로 돌아 가지 않는다는 것입니다. 여기에 데이터를 가져 오기 위해 kinvey 클라이언트 호출이있는 함수를 호출하는 주요 클래스가 있습니다.kinvey 클라이언트 호출의 onsuccess 메소드가 동기화 될 수있는 방법

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로 돌아옵니다. 하지만 그때까지 애플 리케이션 NUALL 포인터 예외로 인해 충돌이있어.

죄송합니다. 제 형편이 좋지 않습니다. 더 설명하고 싶은 것이 있다면 물어보십시오. 예측 가능한 감사는

답변

0

은 늦은 대답하지만, 그냥의 경우 다른 사람이보고 온다 : 이름에서 알 수있는 바와 같이

- AsyncAppData, 데이터를 얻을 수있는 Kinvey 호출이 비동기 적으로 실행됩니다.

가장 좋은 방법은 onSuccess 메서드에서 URL을 할당하는 것입니다. 그 때까지 사용자에게 진행 상황을 알리는 진행 대화 상자가 표시되어야합니다.