Android 服务方面的 START_STICKY_COMPATIBILITY 标志是什么。文档提到了它
什么是兼容版本?如果它是 START_STICKY
的一个版本,那么为什么不能保证对 onStartCommand()
的调用?当它不能保证在服务终止后调用 onStartCommand()
时,为什么有人会使用它?
最佳答案
onStartCommand
的默认实现:
public @StartResult int onStartCommand(Intent intent, @StartArgFlags int flags, int startId) {
onStart(intent, startId);
return mStartCompatibility ? START_STICKY_COMPATIBILITY : START_STICKY;
}
mStartCompatibility
是这样确定的: mStartCompatibility = getApplicationInfo().targetSdkVersion
< Build.VERSION_CODES.ECLAIR;
在
Service
的 1.6 版本中,没有 onStartCommand
的实现,只有 onStart
。在 2.1 版本中,他们弃用了
onStart
。注意参数的不同,
flags
是在那里引入的。通过这样做,他们将保持与旧系统(PRE Eclair)的兼容性,该系统期望旧值,并且他们还支持新系统中的新行为。
关于android - 服务中的 START_STICKY_COMPATIBILITY,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39279497/