如何在Android上关闭应用程序时阻止重启服务?

时间:2014-08-19 18:20:40

标签: android android-intent android-activity android-service android-background

应用和后台服务一起运行。但是当应用关闭时,后台服务正在重启? 为什么?如何阻止重启?

  

当应用程序关闭时,服务应该继续   什么都没发生。我怎么能这样做?



我在MainActivity中使用此代码:

  

tryConnect();

private boolean isMyServiceRunning(Class<?> serviceClass) {
    ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if (serviceClass.getName().equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}
private void tryConnect(){
    if(!isMyServiceRunning(BackService.class)){
        startService(new Intent(this,BackService.class));
    }
}

后台服务返回START_STICKY; (我尝试START_NOT_STICKY,START_REDELIVER_INTENT,不起作用)
我在Android应用程序中没有onDestroy。

1 个答案:

答案 0 :(得分:0)

服务和活动是否在同一个流程上运行?如果是这样那么这可能就是为什么你的服务表现得像这样(如果两者共享相同的进程,那么当应用程序死于处理死亡时也导致服务重新启动它自己如果它使用START_STICKY)...也许你应该尝试运行服务在一个单独的过程中..