我们已经在 Android 中使用 Service 和 IntentServices 进行了一些测试。据我们了解 IntentService 的好处之一是它自己的线程和工作队列...... 测试后我们注意到,如果您向两个服务发送 100 个 Intent ,它们都将开始顺序执行...
由于 IntentService 是工作队列,所以这在某种程度上是意料之中的,但是 Android 如何处理对非多线程服务的多个请求?因为它似乎也有某种底层工作队列?或者可能是某种由 Android 系统本身保存的 Intents-queue? 如果是这样,是否有任何方法可以附加到它,例如查看它的长度/大小?
最佳答案
but how does Android behave regarding to several request to a non-multithreaded Service ?
对 startService()
的调用在发送方的主应用程序线程的消息队列中排队,就像对任何 GUI 操作(例如,setText()
)的调用一样),调用 startActivity()
,等等。
IntentService
在服务本身内部有第二个队列,用于接收到要由后台线程处理的 Intents
。
关于android - 关于 Service 和 IntentService 之间特定 "difference"的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6137644/