android服务在调用stopself后将如何重新传递意图

android服务在调用stopself后将如何重新传递意图,android,android-intent,service,Android,Android Intent,Service,我试图理解当onStartCommand返回START\u REDELIVER\u意图时,服务将如何运行 如果我们假设从一个活动中调用该服务几次。在onStartCommand中,我们收到意向和startID。例如,已收到以下信息: onstart命令-意图A,startID=1 onStartCommand-intent B,startID=2 onstart命令-intent C,startID=3 onstart命令-intent D,startID=4 onstart命令-intent

我试图理解当onStartCommand返回START\u REDELIVER\u意图时,服务将如何运行

如果我们假设从一个活动中调用该服务几次。在onStartCommand中,我们收到意向和startID。例如,已收到以下信息:

onstart命令-意图A,startID=1

onStartCommand-intent B,startID=2

onstart命令-intent C,startID=3

onstart命令-intent D,startID=4

onstart命令-intent E,startID=5

1) 如果我调用stopself(id=3)并终止服务,startID为1、2、4和5的意向是否会重新交付?或者只有id高于stopself中给出的id的意向才能重新交付,即4和5

2) 如果调用stopself(),是否意味着已计划重新交付的计划将被取消

如有任何反馈,我们将不胜感激


Lupe.

安卓的几句话

“允许您在收到来自的启动请求时安全地避免停止 您尚未在onStart中看到的客户端(Intent,int)。”


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

谢谢您的回复,我对意向的重新交付很感兴趣,您能否就我的问题提供一些反馈,说明在每个案例中会重新交付哪些意向?您的服务不会像上面所说的那样被stopSelf(3)终止。但是,是的,由于内存不足,服务可能会被框架杀死。比如说,从onStartCommand返回后,服务被终止(intent,4)。当有足够的内存时,平台将重新启动您的服务,然后提供4和5。
"Stop the service if the most recent time it was started was startId"