在robospice中暂停一个后台进程



是否可以暂停当前正在运行的后台服务,并从其停止执行的点重新运行它?

如果没有,是否至少有可能在SpiceService完成执行之前发送一个信号来停止它的执行?

我不是Robospice/Retrofit专家。但是,这是一个关于http连接的一般性问题。

要实现这一点,您需要编写一个低级代码来连接到服务器。打开一个流到服务。这样您就可以检查流是否仍然打开。如果是,将新数据添加到一个数组中,你的流已经从该数组中获取数据以发送给服务。

因为你正在使用这个库。这并不适用。你唯一的解决办法是取消/停止连接并建立一个新的。

这应该很容易:

if( spiceManager.isStarted() )
    spiceManager.cancel(String.class, MY_REQUEST_CACHE_KEY);

然后重新开始。

备注:有可能在检查spiceManager是否开始得到一个true。在取消之前,spiceManager连接完成。在这种情况下,你应该考虑到不再提交已经提交的信息。那将是浪费。它取决于你的实现。你可能不需要做额外的工作这个。

你可以尝试使用'wait()',这是一个对象的方法。它可以暂停当前线程,直到你使用'notify()'或'notifyAll()'与其他线程中的相同对象。

最新更新