如何防止从任务切换器中清除活动后服务重新启动



我对Android中的服务有疑问,以及如何防止在任务管理器中清除活动时立即重新启动服务(当您按住主页按钮时)。

我希望服务持久存在并拥有自己的进程和内存映像,因此当我的活动关闭时,在这种情况下从任务切换器中清除,服务不会重新启动......

任何人都可以向我展示一些教程和网站来解释如何解决这个问题吗?

服务被设计为在销毁时在后台重新启动(这是一个广泛的声明,有很多因素),因此为了确保不会发生这种情况:

创建使用调用活动创建和销毁的绑定服务:

此示例取自文档

public class LocalService extends Service {
    private final IBinder mBinder = new LocalBinder();
    public class LocalBinder extends Binder {
        LocalService getService() {
            return LocalService.this;
        }
    }
    @Override
    public IBinder onBind(Intent intent) {
        return mBinder;
    }
}

或者在前台运行服务,以便在将其从前台删除时将其销毁。

将服务放在单独的进程中,如下所示:

转到 android 清单中的服务声明,并将其更改为:

<service android:name=".ServiceName" android:process=":remote" />

注意:

由于您的服务在单独的进程中运行,因此您必须在 LogCat(如果使用 Android Studio)中切换进程才能查看调试日志。

最新更新