我有关于Android中的服务的问题,以及如果活动在任务管理器中被扫除(如果您按住主页按钮),如何防止立即重启服务。
我希望服务具有持久性,并拥有自己的进程和内存映像,因此当我的活动关闭时,在这种情况下从任务切换器中扫除,服务将不会重新启动...
有人可以向我展示一些解释如何解决这个问题的教程和网站吗?
答案 0 :(得分:0)
将您的服务放在一个单独的流程中,如下所示:
转到Android清单中的服务声明并将其更改为:
<service android:name=".ServiceName" android:process=":remote" />
注意:强>
由于您的服务是在单独的进程中运行,因此您必须在LogCat中切换进程(如果使用Android Studio)以查看调试日志。
答案 1 :(得分:0)
服务旨在在销毁时在后台重启(这是一个广泛的声明,有很多因素),所以要确保不会发生这种情况:
创建使用调用活动创建和销毁的bound service:
此示例取自文档
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;
}
}
或者在foreground中运行服务,这样当它从前台移除时就会被销毁。