Android排球 - 方向变化

Ovi*_*tcu 17 android android-networking android-volley

我们如何处理方向更改,Activities/ Fragments停止/恢复使用Volley

我知道对于GET请求,响应将被缓存,第二次我们尝试发出请求时,我们将获得缓存响应.(如果服务器发送正确的HTTP头)

但那怎么样POST?假设我发出POST请求(即注册,我想只发生一次),我的应用程序转到后台,请求在应用程序仍在后台时完成,然后我回到应用程序.如果它仍处于待处理状态,我该如何获得ResponseRequest,或者如何重新连接它?

AFAIK对此几乎没有任何支持Volley.我对吗?有没有一种简单的方法来解决上述情况,使用Volley

Tho*_*man 8

Volley没有提供开箱即用的机制,但你可以查看Square的Android版Otto库,它可以优雅地处理像你这样的情况.

实现Volley请求的监听器,以便它将成功的响应发布到总线上,包含在像"RegisterEventSuccess"这样的事件对象中(您自己定义).让您的活动或片段使用Otto的@Subscribe机制订阅此事件类型.如果 - 例如 - 一个Activity启动Volley请求并因屏幕方向更改而死亡,则另一个Activity实例(也注册到Otto总线)可以接收包含Volley请求响应的事件.

希望这很有用.

  • 使用此解决方案,您将如何处理在活动转换时(第一个活动的onDestroy和新定向的onCreate之间)返回网络响应的可能性?在这里,这两项活动都不会登记在公交车上等待活动.@Producer方法可以解决这个问题,但它们似乎并不适合作为通用网络缓存工作,并且不能与原始模式保持一致. (5认同)