gpt4 book ai didi

java - 如何阻止多个服务接受一个 Intent 指令?

转载 作者:行者123 更新时间:2023-12-01 05:45:56 24 4
gpt4 key购买 nike

我们有 2 个应用程序,它们都具有相同的服务来从 Web 服务中提取消息。为了节省电池电量,我们只需要 1 个服务来为两个应用程序执行拉取操作,但在卸载 application1 的情况下,我们需要 application2 的服务来接管拉取操作。

我们通过发送隐式 Intent 来查看我们的任何其他应用程序是否可以启动并接管来实现此目的。

但是:如果我尝试只是停止服务,而不卸载整个应用程序,似乎我们的两个应用程序都会响应启动其服务(突然我们从 1 服务变为 0 到 2)。

**由于问题很神秘,因此应要求进行编辑,下面的一些答案/评论将针对前一个问题,对于大惊小怪的人们表示歉意!

最佳答案

有多种方法可以检查某些应用程序是否已安装,以及(我相信)有多种方法可以发现当前正在运行的内容。但是,我不知道有什么方法可以在 Intent 中提供条件信息来表示“如果可用,则使用此服务实例”(例如)。

我的方法是创建第三个应用程序,它除了包含 IntentService 之外什么也不做(即,它没有 Activity,因此没有 UI)。然后,我会从其他两个应用程序中删除服务代码,并让它们使用 IntentService 的单个实例,该实例在无事可做时处于 hibernate 状态。

由于该服务特定于您自己的应用程序,因此我可能会避免使用隐式 Intent(即指定操作/类别),而是使用显式指定服务类本身的 Intent。可以使用 startService() 或 bindService() 创建/启动 IntentService,其中之一或两者都可能适用,具体取决于您的应用程序的要求。

关于java - 如何阻止多个服务接受一个 Intent 指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5901801/

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