我对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)中切换进程才能查看调试日志。