请注意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也都会依次送入。这适用于那些需要立即恢复工作的活跃服务,比如下载文件。
时间: 2024-11-08 06:33:02