Robospice 服务 运行 直到它在应用程序完成后完成它的工作
Robospice service running until it finish it job after application finished
我有一个可以访问服务器的应用程序。当我退出应用程序时,我必须先断开与服务器的连接,然后再关闭应用程序。
我想知道是否有可能(以及如何)制作一个 Robospice 服务(后台任务),即使应用程序已关闭(并且 Robospice 服务仍在 运行 完成时也与服务器断开连接断开连接,然后自动杀死自己)。
问题是断线时间太长(有时超过5秒),我想避免在断线期间阻塞phone,并允许用户使用它的phone .
另一个问题:Robospice 库是否会在未来得到维护和改进(如果需要)?
是的,RoboSpice 在附加到服务上下文时与在 Activity 中一样工作。
但是您可能应该尝试在实现的 com.octo.android.robospice.SpiceService#onDestroy
方法中执行断开连接。只要没有有意义的工作要做,该服务就会停止,所以我想这是最适合您的用例的解决方案。
我已经通过 finish()
结束我的申请,解决了我的问题(这可能不是真正的问题!)
在我的 MainActivity 中,我使用了 Robospice 服务:
private final class LogoutListener implements PendingRequestListener<String> {
@Override
public void onRequestFailure(SpiceException spiceException) {
Log.e(TAG, spiceException.getMessage());
}
@Override
public void onRequestSuccess(String result) {
// nothing special
}
@Override
public void onRequestNotFound() {
Log.w(TAG, "Not found");
}
}
private void Alarm_Logout(boolean exit) {
Logout request = new Logout(url);
spiceManager.execute(request, new LogoutListener());
this.finish();
}
还有 Lougout class :
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";
}
}
在我使用 System.exit(0) 在 onRequestSuccess 中关闭应用程序之前,我不得不等待注销完成.现在应用程序关闭(finish()),但注销在后台继续,然后,完成后,服务完成...
我有一个可以访问服务器的应用程序。当我退出应用程序时,我必须先断开与服务器的连接,然后再关闭应用程序。
我想知道是否有可能(以及如何)制作一个 Robospice 服务(后台任务),即使应用程序已关闭(并且 Robospice 服务仍在 运行 完成时也与服务器断开连接断开连接,然后自动杀死自己)。
问题是断线时间太长(有时超过5秒),我想避免在断线期间阻塞phone,并允许用户使用它的phone .
另一个问题:Robospice 库是否会在未来得到维护和改进(如果需要)?
是的,RoboSpice 在附加到服务上下文时与在 Activity 中一样工作。
但是您可能应该尝试在实现的 com.octo.android.robospice.SpiceService#onDestroy
方法中执行断开连接。只要没有有意义的工作要做,该服务就会停止,所以我想这是最适合您的用例的解决方案。
我已经通过 finish()
结束我的申请,解决了我的问题(这可能不是真正的问题!)在我的 MainActivity 中,我使用了 Robospice 服务:
private final class LogoutListener implements PendingRequestListener<String> {
@Override
public void onRequestFailure(SpiceException spiceException) {
Log.e(TAG, spiceException.getMessage());
}
@Override
public void onRequestSuccess(String result) {
// nothing special
}
@Override
public void onRequestNotFound() {
Log.w(TAG, "Not found");
}
}
private void Alarm_Logout(boolean exit) {
Logout request = new Logout(url);
spiceManager.execute(request, new LogoutListener());
this.finish();
}
还有 Lougout class :
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";
}
}
在我使用 System.exit(0) 在 onRequestSuccess 中关闭应用程序之前,我不得不等待注销完成.现在应用程序关闭(finish()),但注销在后台继续,然后,完成后,服务完成...