5

我有这个关于 Android 服务的问题,以及如果活动在任务管理器中被扫掉(当你按住主页按钮时),如何防止立即重启服务。

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

谁能给我看一些解释如何解决这个问题的教程和网站?

4

2 回答 2

0

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

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

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

笔记:

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

于 2015-09-07T08:08:42.923 回答
0

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

要么创建一个绑定服务,该服务由调用活动创建和销毁:

此示例取自文档

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;
    }
}

或者在前台运行服务,这样当它从前台删除时它就会被销毁。

于 2016-01-07T10:46:23.037 回答