gpt4 book ai didi

android - 如何在 android 中无限期地运行可共享服务?

转载 作者:行者123 更新时间:2023-11-29 19:11:26 25 4
gpt4 key购买 nike

我想创建一个库,它提供从温度传感器读取值并进行一些处理的服务。该服务将持续监控传感器值,并在检测到高值时发出警报。我想使用这个库构建几个应用程序。我计划将我的库添加为每个应用程序的依赖项,如果一个应用程序启动了我的服务说“TemperatureService”,那么其他应用程序应该使用相同的服务而不创建新服务。

此外,当服务启动时,它应该无限期地运行。当我将来运行一个新的应用程序时,它应该能够绑定(bind)到当前运行的服务。

我尝试使用 IntentService,但当我终止我的应用程序时,该服务也停止了。

Intent i = new Intent(this.getBaseContext(), MyTestService.class);
i.putExtra("foo", "bar");
startService(i);

我该如何解决我的问题?

最佳答案

您应该使用已启动的服务而不是使用 IntentService 因为 Intent Service 在工作完成后会自行停止。

因此,如果您想连续运行服务,则需要创建服务并使用 OnServiceConnected() 方法的返回值 STICKY,该方法是 Service 类中的回调方法。

而对于跨多个Application的通信,则需要实现AIDL并共享相同的接口(interface)来与您的应用程序进行通信。

Android Interface Definition Language (AIDL)

Aidl implementation

Services implemented

IPC in android

Local call implemented

Android Interface Definition Language (AIDL) and Remote Service

上面的链接有完整的演示如何创建和使用服务和 AIDL 进行进程间通信示例使用两个应用程序但您可以创建多个客户端应用程序。

关于android - 如何在 android 中无限期地运行可共享服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45182377/

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