API调用引发错误,但未进入onError()函数

问题描述 投票:0回答:1

API调用抛出了一个我尝试使用onError()捕获的错误。为了进行测试,我试图在Log中为onStarted(),onFinished和onError()打印一条消息。在Logcat中没有显示来自onError()的消息,但是显示了来自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");
    }
};
android listener
1个回答
0
投票

我能够使用进行了API调用的类中的LocalBroadcastManager来显示API调用的错误。我仍然不知道为什么onError()

© www.soinside.com 2019 - 2024. All rights reserved.