我正在编写一个显示“日本传统时间”(简称JTT)的应用程序。有几个组件(通知,小部件,应用程序本身,警报)都使用相同的数据 - 当前的JTT。
我当前的版本使用单个服务执行所有计算,并使用处理程序通知每个人“滴答”,模仿ACTION_TIME_TICK
。
然而,有了警报,我还需要一种方法将“通常时间”转换为JTT,反之亦然。计算非常耗费CPU(它全部基于日出和日落),因此我更喜欢将它们全部放在一个地方然后进行缓存(计算知道日出和日落时间的东西并不那么重)。
所以我现在有几种方法可以做到这一点:
哪个更好?也许别的什么?
答案 0 :(得分:0)
内容提供商用于结构化数据,因此它并不适合您的用例。不确定'异步响应'是什么意思?调用远程服务通常就像本地函数调用一样,它会在完成后阻塞并返回一个值。如果您必须通知多个组件,则可以使用广播。如果所有组件都在同一进程中(请查看Android支持库源),请使用LocalBroadcast进行探索,或者设置权限以确保其他应用无法获取,如果您需要发送系统级(常规)组件。
答案 1 :(得分:0)
我坚持“只是服务” - 我发现Sticky Broadcasts实际上涵盖了我对普通广播的问题(在注册之后但在获得第一个“tick”之前必须从服务请求最新数据)并且离开我需要实际服务连接的情况少得多。