我们已经在Android中对Service和IntentServices进行了一些测试。据我们所知,IntentService的一个好处是它自己的线程和工作队列...... 经过测试,我们注意到如果你向这两个服务发送了100个意图,它们都将按顺序开始执行......
由于它的工作队列,因此有点期望形成IntentService,但Android如何处理非多线程服务的多个请求?因为它似乎也有某种基础工作队列?或者也许某种由Android系统本身保存的Intents队列? 如果是这样,有没有办法附加它,例如看它的长度/大小?
答案 0 :(得分:3)
但是Android如何处理非多线程服务的多个请求?
对startService()
的调用在发送方的主应用程序线程的消息队列中排队,就像调用任何GUI操作(例如setText()
),调用startActivity()
一样,等等。
IntentService
在服务本身内有第二个队列,用于由后台线程处理的已接收Intents
。