我已经制作了这个应用程序,它几乎完全在通知中提供了它的功能。配置在应用程序本身中完成。这是我现在的结构:
服务1:从FireBase检索数据并更改该数据并将其保存在对象中。应用程序需要在应用程序中显示的所有内容都在此对象中。它通过可观察的模式分发给其他活动。所以这些活动实现了Observer。
服务2:此服务跟踪可能直接影响服务对象1的外部更改。因此,此服务绑定到服务1。
活动:显示数据的一些活动。所有这些活动都实现Observer并观察存储在Service 1中的对象。
到目前为止一切顺利。上面没有任何问题。我可以与每项活动的两项服务进行沟通。如果他们感兴趣的对象发生变化,每个活动都会得到更新,并确定如何处理更新后的数据。
现在我收到了这个通知,所有这些动作都是广播意图,我有一个处理这些意图的BroadcastReceiver。广播接收者可能需要来自服务1的数据来执行它的动作,并且所有动作都位于简单的类中(没有活动或服务),但是我不能将广播接收者或对象绑定到服务。
我认为我在这里有两种可能的解决方案:
解决方案1的可能问题:也许3个服务有点过度杀戮?但是将所有功能放在同一个服务中会产生一个很大的,不明确的服务。
解决方案2的可能问题:我已经读过静态变量不是最佳实践,因为静态变量代表全局状态并且很难推理。 Source
我希望有人可以告诉我,如果我对上述假设是对的,如果有一个解决方案,我在这里没有提到。