处理Service的onStartCommand返回值
2015-12-31 10:39
162 查看
onStartCommand() 方法必须返回整型数,用于描述系统应该如何在服务终止的情况下继续运行服务.
从 onStartCommand() 返回的值必须是以下常量之一:
START_NOT_STICKY
如果系统在 onStartCommand() 返回后终止服务,则除非有挂起 Intent 要传递,否则系统 不会重建服务。
这是最安全的选项,可以 避免在不必要时以及应用能够轻松重启所有未完成的作业时运行服务。
START_STICKY
如果系统在 onStartCommand() 返回后终止服务,则会 重建服务并调用 onStartCommand(),但绝对不会重新传递最后一个 Intent.
相反,除非有挂起 Intent 要启动服务(在这种情况下,将传递这些 Intent ),否则系统会通过 空Intent 调用 onStartCommand()。
这适用于 不执行命令、但无限期运行并等待作业的媒体播放器(或类似服务)。
START_REDELIVER_INTENT
如果系统在 onStartCommand() 返回后终止服务,则会 重建服务,并通过 传递给服务的最后一个 Intent 调用 onStartCommand()。
任何挂起 Intent 均依次传递。这适用于主动执行应该立即恢复的作业(例如下载文件)的服务。
小结:
START_STICKY,START_REDELIVER_INTENT 会重启服务
START_STICKY 会传递null的intent
START_REDELIVER_INTENT 会传递最后一个intent
从 onStartCommand() 返回的值必须是以下常量之一:
START_NOT_STICKY
如果系统在 onStartCommand() 返回后终止服务,则除非有挂起 Intent 要传递,否则系统 不会重建服务。
这是最安全的选项,可以 避免在不必要时以及应用能够轻松重启所有未完成的作业时运行服务。
START_STICKY
如果系统在 onStartCommand() 返回后终止服务,则会 重建服务并调用 onStartCommand(),但绝对不会重新传递最后一个 Intent.
相反,除非有挂起 Intent 要启动服务(在这种情况下,将传递这些 Intent ),否则系统会通过 空Intent 调用 onStartCommand()。
这适用于 不执行命令、但无限期运行并等待作业的媒体播放器(或类似服务)。
START_REDELIVER_INTENT
如果系统在 onStartCommand() 返回后终止服务,则会 重建服务,并通过 传递给服务的最后一个 Intent 调用 onStartCommand()。
任何挂起 Intent 均依次传递。这适用于主动执行应该立即恢复的作业(例如下载文件)的服务。
小结:
START_STICKY,START_REDELIVER_INTENT 会重启服务
START_STICKY 会传递null的intent
START_REDELIVER_INTENT 会传递最后一个intent
相关文章推荐
- android ScrollView滑动时出现的阴影如何去除
- DNS服务器简单架设测试
- Keil4 每次选build 编译(F7)都全部编译的解决办法
- Yii操作cookie
- python socket编程详细介绍
- iOS中Block代码块的使用
- OC 与JS(WebView)交互
- linux内核驱动02-module param
- 使用libpcap库的多线程问题
- 乐视第4代超级电视引领行业风向标
- 上传文件 nginx 413错误
- js实现文字垂直滚动和鼠标悬停效果
- mysql中char与varchar的区别分析
- 12月国内网站流量统计5强:360安全中心后来居上
- shell 参数
- 培训机构毕业的程序员被歧视的背后逻辑
- EF(EntityFramework)使用Code First连接MySQL数据库详解
- 基于FBX SDK的FBX模型解析与加载 -(二)
- windows常用设置
- 使用jquery+一般处理程序异步载入信息