从系统服务到其他应用程序的异步通信
Asynchronous communication from a system service to other apps
我有一个系统服务在后台持续运行,并通过 I/O 获取异步中断。我希望能够让其他应用知道中断发生的时间以及中断的性质。我想让这些信息可用于大量 不同和未知的 应用程序。
我一直在阅读有关绑定和广播的内容 intents
(我很确定不止这两种方式)。 在这种情况下,哪种通信方式最适合发送此信息并使其普遍可用?
"long periods of inactivity" 意味着 "different and unknown apps" 不应该 运行 只是在等待您的 IPC。因此,您不仅需要传递消息,还需要确保收件人有一个过程 运行 作为其中的一部分。
我认为最简单的解决方案是广播 Intent
。这将:
允许收件人在清单中注册以接收广播,这样他们的过程就可以在需要时启动,而无需您进行额外的工作
从你这边得到一个简化的"fire and forget"方法
我还没有实现系统服务。我想从一个发送广播并不难。
其他需要考虑的事项:
如果可能的话,想出一个批处理系统。 15-20/秒的最高速率几乎没有传感器读数那么糟糕,但它仍然有点频繁。
考虑一下您需要什么样的安全性(例如,自定义权限?)。
我有一个系统服务在后台持续运行,并通过 I/O 获取异步中断。我希望能够让其他应用知道中断发生的时间以及中断的性质。我想让这些信息可用于大量 不同和未知的 应用程序。
我一直在阅读有关绑定和广播的内容 intents
(我很确定不止这两种方式)。 在这种情况下,哪种通信方式最适合发送此信息并使其普遍可用?
"long periods of inactivity" 意味着 "different and unknown apps" 不应该 运行 只是在等待您的 IPC。因此,您不仅需要传递消息,还需要确保收件人有一个过程 运行 作为其中的一部分。
我认为最简单的解决方案是广播 Intent
。这将:
允许收件人在清单中注册以接收广播,这样他们的过程就可以在需要时启动,而无需您进行额外的工作
从你这边得到一个简化的"fire and forget"方法
我还没有实现系统服务。我想从一个发送广播并不难。
其他需要考虑的事项:
如果可能的话,想出一个批处理系统。 15-20/秒的最高速率几乎没有传感器读数那么糟糕,但它仍然有点频繁。
考虑一下您需要什么样的安全性(例如,自定义权限?)。