Android如何在IntentService上排队多个意图

关于IntentService的使用我有点困惑。

  1. 文档说IntentService将发送给它的所有意图排队,并一次处理一个。
  2. 我看了一下IntentService的代码,我看到onStartCommand()接收到intent,调用onStart()将它作为消息发送到intents队列

我很确定我在文档中读到somwhere只有系统调用onStartCommand()一次,如果你发出两次startService() ,第二次调用不会导致调用onStartCommand()
我可能在这里错了,因为我一直在寻找这篇文档而我似乎无法find它。
这与先前的概念相矛盾,该概念说您可以通过onStartCommand()在IntentService中排队许多意图。

所以我在这里需要帮助,如何在IntentService上排队多个意图?

我只看到两个选项:

  • 只需使用不同的意图调用每次startService()

  • 直接调用onStart()onStartCommand() (绕过startService()

您使用Context.startService()发送Intent ,并且您的服务在onHandleIntent()onHandleIntent()

第一次调用startService()将导致调用服务的onStartCommand() 。 把它想象成一个构造函数。 对startService()后续调用不需要再次启动服务,因为它已经在运行; 它们只会导致对服务的onHandleIntent()更多调用。