You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Service先返回START_STICKY再返回START_NOT_STICKY的状态疑问

Android服务重启策略的更新规则

是的,服务的重启行为会以最后一次调用onStartCommand()返回的标记为准。

Android系统会持续跟踪每个服务最后一次从onStartCommand()返回的重启策略:

  • 首次返回START_STICKY时,系统会记录该策略:此时若服务因系统内存不足被杀死,会自动重启,重启时onStartCommand()会收到null Intent。
  • 当第二次调用onStartCommand()并返回START_NOT_STICKY后,系统会更新保存的该服务的重启策略。后续如果服务因系统回收被终止,系统将不会自动重启它——除非你通过startService()主动触发启动。

需要注意的例外场景:

  • 若服务被用户手动强制停止(如系统设置中操作),或因电池优化、厂商定制的后台管控策略被终止,无论之前返回何种标记,系统都不会自动重启该服务。

内容的提问来源于stack exchange,提问作者Daniel D.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:08:08