Бесконечные зависания в AsynsCall

У меня есть функция, которая пытается получить данные из таблицы "Вопрос" Backendless:

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()");
        }

Однако, это висит на сообщении журнала "Inside try()". Как я могу узнать больше об этом и отладить его?

1 ответ

Backendless здесь не висит, похоже на проблему с семафором. Установите точку останова внутри handleResponse и посмотрите, дойдет ли выполнение до этой точки.

Другие вопросы по тегам