2016-07-05 43 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

Backendless不會掛在這裏,它看起來像是信號量的問題。在handleResponse中設置一個斷點,並查看執行是否到達該點。

+0

感謝馬克,我已經以某種臨時的方式解決了這個問題;沒有信號量BTW。正如我所說,由於這些變化是「特設」的,所以我認爲刪除這個問題可能會更好。 – Ilonpilaaja

+0

我會在這裏保留一個建議避免信號量的決議。這可能對其他人有一定的價值。只要我的$ 0.02 .. –