我的STICKY服务遇到了麻烦。我在我的MainActivity.class中调用它并绑定它:
MainActivity :
Intent intent = new Intent(this, MyService.class);
ComponentName MyCompName= startService(intent);
bindService(intent, MyConnection, Context.BIND_AUTO_CREATE);
和...
为MyService
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
return START_STICKY;
}
我希望此服务运行STICKY,永远不会关闭或重新启动。但是当我关闭我的应用程序时,调用onCreate() - MyService方法并重置所有变量,我不知道为什么。
BTW:我不打电话给stopService!
答案 0 :(得分:4)
STICKY和NON_STICKY服务之间的区别在于STICKY服务在被杀后重新启动。我认为不可能保证您的服务永远不会重新启动 - 如果内存不足,可能会重新启动。
如果需要保留状态,可以将变量保存在数据库中。要查看服务是第一次创建还是重新启动,您可以检查onStartCommand中的意图是否为空。
如果您只需要在创建服务时保留初始状态,则可以使用START_REDELIVER_INTENT,它将重新发送用于在onStartCommand中创建服务的Intent。