从未在 RequestListener 中捕获到 Robospice 异常
Robospice exception never caught in RequestListener
我有一个 android 应用程序,它使用带有 Google HTTP 客户端的 Robospice 向服务器发送 RESTful 请求。
如果成功返回结果,一切正常,但如果我的服务返回异常,Robospice 侦听器不会捕获异常。
public final class FBUserSaveListener implements RequestListener<HttpResponse> {
@Override
public void onRequestFailure( SpiceException spiceException ) {
if(progressDialog.isShowing())
{
progressDialog.dismiss();
}
Toast.makeText(getActivity(),
"Error: " + spiceException.getMessage(), Toast.LENGTH_SHORT)
.show();
Intent i = new Intent(getActivity(), ErrorActivity.class);
startActivity(i);
}
@Override
public void onRequestSuccess(HttpResponse response) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
if(response.getStatusCode() == AppConstants.HTTP_CODE_CREATED_201) {
Intent intent = new Intent(getActivity(), PoolMainActivity.class);
startActivity(intent);
}
else{
//Request was sent successfully but the response was wrong
// Redirect to error page
Intent i = new Intent(getActivity(), ErrorActivity.class);
startActivity(i);
}
}
}
上述代码中,当外部服务returns异常时,onRequestFailure()根本没有命中
我的要求是:
public HttpResponse loadDataFromNetwork() throws Exception{
String url = context.getString(R.string.BASE_SERVICE_URL) + context.getString(R.string.USER_FB_LOGIN_SAVE);
HttpRequest request = getHttpRequestFactory()//
.buildPostRequest(new GenericUrl(url), ByteArrayContent.fromString("application/json", fbLoginBeanJson));
request.setParser(new com.google.api.client.json.jackson2.JacksonFactory().createJsonObjectParser());
return request.execute();
}
我是否遗漏了 RESTful 服务的 Robospice 实施中的某些内容?
我通过调试片段的生命周期设法解决了这个问题。
我意识到 spiceManager 由于片段生命周期的变化而被清除。在 robospice 中看到了常见问题解答部分,它对我帮助很大。
使 spiceManager 分别在我片段的 onAttach 和 onDetach 方法中开始和结束。
我有一个 android 应用程序,它使用带有 Google HTTP 客户端的 Robospice 向服务器发送 RESTful 请求。 如果成功返回结果,一切正常,但如果我的服务返回异常,Robospice 侦听器不会捕获异常。
public final class FBUserSaveListener implements RequestListener<HttpResponse> {
@Override
public void onRequestFailure( SpiceException spiceException ) {
if(progressDialog.isShowing())
{
progressDialog.dismiss();
}
Toast.makeText(getActivity(),
"Error: " + spiceException.getMessage(), Toast.LENGTH_SHORT)
.show();
Intent i = new Intent(getActivity(), ErrorActivity.class);
startActivity(i);
}
@Override
public void onRequestSuccess(HttpResponse response) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
if(response.getStatusCode() == AppConstants.HTTP_CODE_CREATED_201) {
Intent intent = new Intent(getActivity(), PoolMainActivity.class);
startActivity(intent);
}
else{
//Request was sent successfully but the response was wrong
// Redirect to error page
Intent i = new Intent(getActivity(), ErrorActivity.class);
startActivity(i);
}
}
}
上述代码中,当外部服务returns异常时,onRequestFailure()根本没有命中
我的要求是:
public HttpResponse loadDataFromNetwork() throws Exception{
String url = context.getString(R.string.BASE_SERVICE_URL) + context.getString(R.string.USER_FB_LOGIN_SAVE);
HttpRequest request = getHttpRequestFactory()//
.buildPostRequest(new GenericUrl(url), ByteArrayContent.fromString("application/json", fbLoginBeanJson));
request.setParser(new com.google.api.client.json.jackson2.JacksonFactory().createJsonObjectParser());
return request.execute();
}
我是否遗漏了 RESTful 服务的 Robospice 实施中的某些内容?
我通过调试片段的生命周期设法解决了这个问题。
我意识到 spiceManager 由于片段生命周期的变化而被清除。在 robospice 中看到了常见问题解答部分,它对我帮助很大。
使 spiceManager 分别在我片段的 onAttach 和 onDetach 方法中开始和结束。