首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >服务中的START_STICKY_COMPATIBILITY

服务中的START_STICKY_COMPATIBILITY
EN

Stack Overflow用户
提问于 2016-09-01 19:29:59
回答 1查看 3.1K关注 0票数 9

安卓服务中的START_STICKY_COMPATIBILITY标志是什么?文档中提到了

兼容性版本的START_STICKY,它不能保证onStartCommand(意图,int,int)在被杀死后再次被调用。

什么是兼容版本?如果它是START_STICKY的一个版本,那么为什么对onStartCommand()的调用没有得到保证呢?如果它不能保证在服务终止后调用onStartCommand(),那么为什么会有人使用它呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-02 07:59:35

onStartCommand的默认实现

代码语言:javascript
运行
复制
  public @StartResult int onStartCommand(Intent intent, @StartArgFlags int flags, int startId) {
        onStart(intent, startId);
        return mStartCompatibility ? START_STICKY_COMPATIBILITY : START_STICKY;
    }

mStartCompatibility是这样确定的:

代码语言:javascript
运行
复制
 mStartCompatibility = getApplicationInfo().targetSdkVersion
                < Build.VERSION_CODES.ECLAIR;

在1.6个版本的Service中,没有onStartCommand的实现,只有onStart。在2.1版本中,他们让onStart不再受欢迎。注意参数的不同,在那里引入了flags

通过这样做,他们将保持与旧系统(PRE)的兼容性,后者期待旧的价值,并支持新系统中的新行为。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39279497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档