android 四大组件之Service 粘性与非粘性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 四大组件之Service 粘性与非粘性相关的知识,希望对你有一定的参考价值。

请注意onStartCommand()方法必须返回一个整数。这个整数是描述系统在杀死服务之后应该如何继续运行(

上一节中缺省的 IntentService 实现代码会替你处理这一点,当然那样你就无法修改这个处理过程)。

onStartCommand()的返回值必须是以下常量之一:

START_NOT_STICKY 
如果系统在onStartCommand()返回后杀死了服务,则不会重建服务了,除非还存在未发送的intent。
当服务不再是必需的,并且应用程序能够简单地重启那些未完成的工作时,这是避免服务运行的最安全的选项。
START_STICKY 
如果系统在onStartCommand()返回后杀死了服务,则将重建服务并调用onStartCommand(),
但不会再次送入上一个intent, 而是用null intent来调用onStartCommand() 。除非还有启动服务的intent未发送完,
那么这些剩下的intent会继续发送。 这适用于媒体播放器(或类似服务),它们不执行命令,但需要一直运行并随时待命。
START_REDELIVER_INTENT 
如果系统在onStartCommand()返回后杀死了服务,则将重建服务并用上一个已送过的intent调用onStartCommand()。
任何未发送完的intent也都会依次送入。这适用于那些需要立即恢复工作的活跃服务,比如下载文件。

以上是关于android 四大组件之Service 粘性与非粘性的主要内容,如果未能解决你的问题,请参考以下文章

Android四大组件之Service

Android四大组件之service

Android四大组件service之Bound Service

android 四大组件之---Service

Android四大组件之Service

android 四大组件之Service 结合通知