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/

10-10 01:32