关于IntentService的使用,我有点困惑。
我很确定我在文档中读到somwhere,如果你发出两次 startService(),那么 onStartCommand()只被系统调用一次,第二次调用不会导致调用 onStartCommand() 我可能在这里错了,因为我一直在寻找这篇文档而我似乎无法找到它 这与先前的概念相矛盾,该概念表明您可以通过onStartCommand()在IntentService中排队许多意图。
所以我在这里需要帮助,如何在IntentService上排队多个意图?
我只看到两个选项:
每次使用不同的意图 startService()进行调用
直接调用 onStart()或 onStartCommand()(绕过 startService())
答案 0 :(得分:13)
您使用Intent
发送Context.startService()
,并且您的服务会在onHandleIntent()
中提取意图。
第一次拨打startService()
会导致服务onStartCommand()
被调用。把它想象成一个构造函数。对startService()
的后续调用不需要再次启动服务,因为它已经在运行;它们只会导致对服务onHandleIntent()
的更多调用。