Robospice服务运行,直到应用完成后完成工作

时间:2015-05-04 06:30:07

标签: android okhttp robospice

我有一个访问服务器的应用程序。当我退出应用程序时,我必须先断开与服务器的连接,然后关闭应用程序。

我想知道即使应用程序已关闭(并且Robospice服务仍在运行以完成的话),是否可能(以及如何)使Robospice服务(后台任务)与服务器断开连接deconnection,然后自动杀死自己。)

问题在于断开连接太长(有时超过5次)并且我想避免在断开连接期间阻止手机,并允许用户使用它的手机。

另一个问题:Robospice图书馆将来会得到维护和改进吗(如有必要)?

2 个答案:

答案 0 :(得分:0)

是的,RoboSpice在附加到服务上下文时也能正常工作,因为它与Activity 1一起使用。 但您可能应该尝试在实现的com.octo.android.robospice.SpiceService#onDestroy方法中执行disconnect。只要没有任何有意义的工作要做,这项服务就会停止,所以我想这对你的用例来说是最合适的解决方案。

答案 1 :(得分:0)

通过 finish()

结束我的应用程序,我已经解决了我的问题(这可能不是真正的问题!)

在我的MainActivity中,我使用了一个Robospice服务:

public class Logout extends OkHttpSpiceRequest<String> {

  private String url_logout;

  public Logout(String url) {
      super(String.class);
      this.url_logout = url;
  }

  @Override
  public String loadDataFromNetwork() throws Exception {

      OkHttpClient client = new OkHttpClient();
      Request request = new Request.Builder()
              .url(url_logout)
              .build();
      Response response = client.newCall(request).execute();
      return "ok";

  }

}

和Lougout课程:

tableView:willDisplayCell:forRowAtIndexPath:

在我使用 onRequestSuccess 中的 System.exit(0)关闭应用之前,我必须等待Logout完成。现在应用程序关闭(完成()),但Logout在后台继续,然后,完成后,服务完成...