我正在尝试了解当onStartCommand将返回START_REDELIVER_INTENT时服务的行为。
如果我们假设从一项活动中我们多次调用该服务。在onStartCommand中,我们收到intent和startID。例如,已收到以下内容:
onStartCommand - intent A, startID = 1
onStartCommand - intent B, startID = 2
onStartCommand - intent C, startID = 3
onStartCommand - intent D, startID = 4
onStartCommand - intent E, startID = 5
1)如果我调用stopself(id = 3)并且服务被终止,那么将重新传送startID 1,2,4和5的意图吗?或者只有id高于自我中给出的那个意图被重新传递,即4和5?
2)如果我调用stopself(),是否意味着已经取消了已经安排重新发送的意图?
感谢任何反馈,
卢佩。
答案 0 :(得分:0)
Android documentation
中的一些陈述"Stop the service if the most recent time it was started was startId"
如果有来自的开始请求,“允许您安全地避免停止 您尚未在onStart(Intent,int)中看到的客户端。“
因此,在您的示例中,调用stopSelf(3)不会停止您的服务。希望这能回答你的问题。