gpt4 book ai didi

java - Robospice 异常从未在 RequestListener 中捕获

转载 作者:行者123 更新时间:2023-12-01 11:12:02 25 4
gpt4 key购买 nike

我有一个 Android 应用程序,它使用 Robospice 和 Google HTTP 客户端向服务器发送 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);
}
}


}

在上面的代码中,当外部服务返回异常时,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 实现中的某些内容?

最佳答案

我设法通过调试 fragment 的生命周期解决了这个问题。

我意识到由于我的 fragment 生命周期的变化,spiceManager 正在被清除。看到了 robospice 中的常见问题解答部分,它对我帮助很大。

使spiceManager分别在我的 fragment 的onAttach和onDetach方法中开始和结束。

关于java - Robospice 异常从未在 RequestListener 中捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32233814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com