在robospice中暂停后台进程

时间:2015-08-07 07:09:32

标签: android asynchronous retrofit robospice

是否可以暂停当前正在运行的后台服务并从其执行停止点开始再次运行它?

如果没有,是否至少可以在完成执行之前发送信号以停止执行SpiceService?

2 个答案:

答案 0 :(得分:4)

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

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

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

这应该很简单:

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

然后开始一个新的。

  

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

答案 1 :(得分:1)

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