gpt4 book ai didi

Android 如何在 IntentService 上排队多个 Intent

转载 作者:可可西里 更新时间:2023-11-01 19:06:04 25 4
gpt4 key购买 nike

我对 IntentService 的用法有点困惑。

  1. 文档说 IntentService 对发送给它的所有 Intent 进行排队,并一次处理一个。
  2. 我查看了 code of IntentService我看到 onStartCommand() 接收到 Intent ,调用 onStart() 将其作为消息发送到 Intent 队列

我很确定我在文档中的某个地方读到,onStartCommand() 只被系统调用一次,如果你发出两次 startService(),第二个调用不会导致 onStartCommand() 被调用。
我在这里可能是错的,因为我一直在寻找这段文档,但我似乎找不到它。
这与之前的概念相矛盾,即您可以通过 onStartCommand() 在 IntentService 中对多个 Intent 进行排队。

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

我只看到两个选项:

  • 只需每次startService() 调用不同的 Intent

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

最佳答案

您发送 IntentContext.startService()并且 Intent 由您在 onHandleIntent() 中的服务获取.

第一次调用startService()将导致服务的 onStartCommand()被调用。将其视为构造函数。随后调用 startService()不需要再次启动该服务,因为它已经在运行;它们只会导致对该服务的 onHandleIntent() 的更多调用.

关于Android 如何在 IntentService 上排队多个 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14833555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com