Вызов API выдает ошибку, но не попадает в функцию onError () - PullRequest
0 голосов
/ 30 сентября 2019

Вызов API выдает ошибку, которую я пытался отловить с помощью onError (). В целях тестирования я пытался напечатать сообщение в журнале для onStarted (), onFinished и onError (). Сообщение от onError () не отображается в Logcat, но отображаются сообщения от onStarted () и onFinished ().

public void onAttach(android.app.Activity activity){
    super.onAttach(activity);
    TaskManager.registerListener(Bhr4Contracts.TASK_ROUTER, editWifiListener);

}

public void onDetach() {
    super.onDetach();
    TaskManager.unregisterListener(editWifiListener);

}

TaskStatusListener editWifiListener = new TaskStatusListener() {

    @Override
    public void onStarted(Bundle data) {
        Timber.tag("editListener").d("inside started");
    }
    @Override
    public void onError(Bundle data, Exception ex) {
        super.onError(data, ex);
        String message;
        if (ex instanceof NetworkingException) {
            message = ((NetworkingException) ex).getDetailedMessage();
            if (message.isEmpty()) {
                message = ex.getLocalizedMessage();
            }
        } else {
            message = ex.getMessage();
        }

        if (!TextUtils.isEmpty(message)) {
            Activity activity = getActivity();
            if (activity != null) {
                UIUtil.displayMessage(getActivity(), message, UIUtil.SNACKBAR_FLAG.IS_ERROR, Snackbar.LENGTH_INDEFINITE);
            }
        }
        Timber.tag("editErrorListener").d("inside onError");
    }
    @Override
    public void onFinished(Bundle data) {
        Timber.tag("editListener").d("inside onFinished");
    }
};

1 Ответ

0 голосов
/ 03 октября 2019

Мне удалось показать ошибку при вызове API с помощью LocalBroadcastManager из класса, где выполнялся вызов API. Я все еще не мог понять, почему onError () не работал, но BroadcastReceiver работал в качестве обходного пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...