我的 STICKY 服务遇到问题。我在 MainActivity.class 中调用它并绑定(bind)它:
主要 Activity :
Intent intent = new Intent(this, MyService.class);
ComponentName MyCompName= startService(intent);
bindService(intent, MyConnection, Context.BIND_AUTO_CREATE);
还有...
我的服务
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
return START_STICKY;
}
我希望此服务运行 STICKY 并且永远不会关闭或重新启动。但是当我关闭我的应用程序时,MyService 的 onCreate() 方法被调用,所有变量都被重置,我不知道为什么。
顺便说一句:我不会调用 stopService!
最佳答案
STICKY 和 NON_STICKY 服务的区别在于 STICKY 服务被杀死后会重新启动。我认为不可能保证您的服务永远不会重新启动 - 如果内存不足,它可能会重新启动。
如果需要保留状态,可以将变量保存在数据库中。判断服务是否是第一次创建或者重启,可以检查onStartCommand中的intent是否为null。
如果您只需要保留创建服务时的初始状态,可以使用 START_REDELIVER_INTENT ,它将在 onStartCommand 中重新发送用于创建服务的 Intent。
关于android - 应用程序关闭后粘性服务重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20073546/