API 调用抛出错误但未进入 onError() 函数
API call throwing an error but not getting into onError() function
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");
}
};
我能够使用来自 class 的 LocalBroadcastManager 显示来自 API 调用的错误,其中正在进行 API 调用。我仍然无法弄清楚为什么 onError() 没有工作,但 BroadcastReceiver 可以作为一种解决方法。
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");
}
};
我能够使用来自 class 的 LocalBroadcastManager 显示来自 API 调用的错误,其中正在进行 API 调用。我仍然无法弄清楚为什么 onError() 没有工作,但 BroadcastReceiver 可以作为一种解决方法。