android - 关于 Service 和 IntentService 之间特定 "difference"的问题

标签 android service queue

我们已经在 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/

相关文章:

memory-management - RabbitMQ 内存管理和复制

android - res 文件夹中的 XML 文件突然显示垃圾

android - 类型 'Future<List<Data>>' 不是类型转换中类型 'List<Data>' 的子类型

android - 如何从插入的记录中检索数据以显示在另一个android Activity 中?

java - 杀死并重新启动应用程序后前台服务未停止 - Android Studio

service - 当面向消息的中间件完成这项工作时,为什么还要为服务发现而烦恼?

java - 静止不动时使用 TYPE_ROTATION_VECTOR 实现当前基本方向方法?

java - Android:AIDL 中的自定义对象

c++ - 在不使用 STL 的情况下构建队列队列

java - 我应该使用什么类型的阻塞队列?