调用stopself后android服务如何重新调用意图

时间:2013-11-19 18:33:49

标签: android android-intent service

我正在尝试了解当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(),是否意味着已经取消了已经安排重新发送的意图?

感谢任何反馈,

卢佩。

1 个答案:

答案 0 :(得分:0)

Android documentation

中的一些陈述
"Stop the service if the most recent time it was started was startId"
  如果有来自的开始请求,

“允许您安全地避免停止   您尚未在onStart(Intent,int)中看到的客户端。“

因此,在您的示例中,调用stopSelf(3)不会停止您的服务。希望这能回答你的问题。