作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
什么是 Android 服务方面的 START_STICKY_COMPATIBILITY 标志。文档提到了它
compatibility version of START_STICKY that does not guarantee that onStartCommand(Intent, int, int) will be called again after being killed.
什么是兼容版本?如果它是 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;
在1.6版本的Service
没有 onStartCommand
的实现,只有 onStart
。在 2.1 版本中,他们制作了 onStart
已弃用。注意参数的不同,那里引入了 flags
。
通过这样做,他们将保持与期望旧值的旧系统 (PRE Eclair) 的兼容性,并且他们还支持新系统中的新行为。
关于android - 服务中的 START_STICKY_COMPATIBILITY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39279497/
什么是 Android 服务方面的 START_STICKY_COMPATIBILITY 标志。文档提到了它 compatibility version of START_STICKY that do
我是一名优秀的程序员,十分优秀!