如果一个 IntentService 对象被完全处理并且花费了不确定的时间,那么其他排队的意图将如何处理?
If an IntentService object is processed completely and takes indefinite time, how will other queued up intents be processed?
我有一个扩展 IntentService 的 Class ABC。此 class 由名为 DEF 的接收器 class 调用,它扩展了 WakefulBroadcastReceiver。
每当 DEF class 收到意图时,它都会调用 startWakefuleService 并将意图传递给 ABC class。
在ABCclass的onHandle()中处理intent,并使用callback将相关信息发送给服务器
在 onHandle() 结束时,DEF.completeWakefulIntent(intent) 被调用到 return 唤醒锁。
我的问题是关于以下场景:
我的 BroadcastReceiver class DEF,收到多个意图
通过classABC启动了多个IntentServices。
第一个Intent Service向服务器发起http请求,需要很长时间才能返回或者根本不返回。
其他启动的 Intent Service 是否会被处理,或者它们会卡在等待处理的队列中吗?
[文档] (https://developer.android.com/reference/android/app/IntentService.html) 说 IntentService 对象是按顺序处理的。
如有任何帮助,我们将不胜感激。
对 IntentService
的所有请求都在单个线程上处理并按顺序完成。如果请求阻塞 onHandleIntent()
并阻止其完成,则将永远不会处理进一步的请求。
服务只有一个实例。没有"the other IntentService".
这样的东西
All requests are handled on a single worker thread -- they may take as
long as necessary (and will not block the application's main loop),
but only one request will be processed at a time.
我有一个扩展 IntentService 的 Class ABC。此 class 由名为 DEF 的接收器 class 调用,它扩展了 WakefulBroadcastReceiver。
每当 DEF class 收到意图时,它都会调用 startWakefuleService 并将意图传递给 ABC class。
在ABCclass的onHandle()中处理intent,并使用callback将相关信息发送给服务器
在 onHandle() 结束时,DEF.completeWakefulIntent(intent) 被调用到 return 唤醒锁。
我的问题是关于以下场景:
我的 BroadcastReceiver class DEF,收到多个意图
通过classABC启动了多个IntentServices。
第一个Intent Service向服务器发起http请求,需要很长时间才能返回或者根本不返回。
其他启动的 Intent Service 是否会被处理,或者它们会卡在等待处理的队列中吗?
[文档] (https://developer.android.com/reference/android/app/IntentService.html) 说 IntentService 对象是按顺序处理的。
如有任何帮助,我们将不胜感激。
对 IntentService
的所有请求都在单个线程上处理并按顺序完成。如果请求阻塞 onHandleIntent()
并阻止其完成,则将永远不会处理进一步的请求。
服务只有一个实例。没有"the other IntentService".
这样的东西All requests are handled on a single worker thread -- they may take as long as necessary (and will not block the application's main loop), but only one request will be processed at a time.