2016-07-05 1 views
0

에 응답 :Backendless 내가 Backendless "질문"테이블에서 데이터를 검색하려고하는 기능이 AsynsCall

private static void fetchQuestionsBase() { 
      final Semaphore s = new Semaphore(0); 
      Log.d(TAG,"Inside fetch()"); 
      AsyncCallback<BackendlessCollection<Question>> callback = new AsyncCallback<BackendlessCollection<Question>>() { 
       @Override 
       public void handleResponse(BackendlessCollection<Question> response) { 
        Log.d(TAG,"Success in fetching the database"); 
        s.release(); 
        dataHolder.q = response.getData(); 
       } 
       @Override 
       public void handleFault(BackendlessFault fault) { 
        Log.e(TAG,"Failure: "+fault.getMessage()); 
        s.release(); 
       } 
      }; 
      Backendless.Data.of(Question.class).find(callback); 
      Log.d(TAG,"After Data.of..."); 
      try { 
       Log.d(TAG,"Inside try()"); 
       s.acquire(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      Log.d(TAG,"After acquire()"); 
     } 

그러나,이 하나에 달려을 "내부()가 시도"로그 메시지를. 이 문제에 대해 더 자세히 알고 디버깅 할 수 있습니까?

답변

0

백엔드가 여기에 걸리지 않습니다. 세마포어에 문제가있는 것 같습니다. handleResponse 내부에 중단 점을 설정하고 실행이 그 지점에 도달하는지 확인하십시오.

+0

감사 마크, 나는이 문제를 다소 임시 방편으로 해결했다. 세마포어없이 BTW. 나가 말한대로, "임시"변화이기 때문에, 나는이 질문을 삭제하는 것이 낫 것을 생각했다. – Ilonpilaaja

+0

나는 여기에 세마포어를 피하도록 제안하는 결의안을 유지할 것이다. 그것은 다른 사람들에게 약간의 가치가있을 수 있습니다. 단지 $ 0.02 .. –

관련 문제