前台服务
具有非常高的优先级,并且极不可能被系统杀死,因此在onStartCommand
中返回START_STICKY
是否有意义呢?
备注:这个问题不是关于START_STICKY
和START_NON_STICKY
之间的区别,而是关于START_STICKY
与前台服务相关性的可用性。
非常不可能被杀死
" != "永远不会被杀死
"。例如,用户可以通过多种方式终止您的进程。如果您关心这些情况并希望在符合条件时重新启动服务,请使用START_STICKY
或START_REDELIVER_INTENT
。如果您愿意让服务保持停止状态,请使用START_NOT_STICKY
。
例如,如果您正在编写音乐播放器,请返回START_NOT_STICKY
,因为当系统选择重新启动您的服务时,在某个任意时间开始播放音乐可能不适合您的应用程序。