我正在开发一个使用RoboSpice库调用REST API的应用程序。除了一件事以外,一切正常。我不使用RoboSpice中的缓存,因此所有的请求都没有缓存。现在,当有任何请求正在进行并且用户按下home按钮时,调用onStop(),其中调用了spice manager的shouldStop(),它将取消注册所有请求侦听器以进行通知。当应用程序再次进入前台时,UI更新不会发生,因为侦听器尚未收到通知。Robospice请求永远不会结束,如果应用程序进入后台,然后来到前台?
我不想使用Robospice提供的Cache。有没有其他方式可以在不使用Cache的情况下获得UI更新通知?
我同意RS是这样做的原因。但是,想象一下已经提出请求并显示进度对话框,并且用户按下主页按钮。对REST的调用将会正常进行,当用户启动应用程序时,进度对话框并未消失,因为UI未更新,因为听众未注册。无论如何,似乎使用缓存是目前RS的唯一方法。 – mobiledev
另一种方法是在onDestroy中调用spiceManager.shouldStop(),并在onCreate()中启动spicemanager。由于onDestroy()是一个活动在被杀害时会得到的最终调用。 – mobiledev
@mobiledev,我不认为第二种解决方案更好。服务绑定真的很棘手,首选的地方是使用onStart/onStop。您可能有兴趣从服务而不是活动请求。 – Snicolas