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

4
应用和后台服务同时运行。但是当应用关闭时,后台服务会重新启动?为什么?我该如何阻止重新启动?
当应用关闭时,服务应该像什么也没发生一样继续运行。我该怎么做呢?
我在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 方法。


操作系统在需要一些内存时随时可以停止您的服务。因此,最好创建一个不会受到任何这些问题影响的服务。 - Nish8900
1个回答

0

服务和活动是否在同一进程中运行?如果是的话,那可能就是为什么您的服务表现出这种行为的原因(如果两者共享同一进程,则当应用程序死亡时,进程也会死亡,如果服务使用START_STICKY,则会导致服务重新启动自身)...也许您应该尝试在单独的进程中运行服务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接