我在一个有几个开发人员的项目上工作。我们开发一个相当大的应用程序。每个开发人员都有几个活动,可以看作是整个主应用程序的子应用程序。
我确实意识到,这可能不是最好的设计,但它存在,我们必须以某种方式处理它。
现在的主要问题是,我们需要一个 master,它始终处于活动状态并检查 I/O 等,并且可以为每个子应用程序/活动提供状态更改。诸如“我们刚刚失去了互联网连接”之类的东西。
现在,那个master是一个单例,它首先由启动器活动实例化,每个活动/子应用程序都可以通过传递适当的接口来注册,具体取决于活动想要接收的更新。
这是有效的,但感觉不对,因为单例需要上下文来访问系统资源以确定系统状态,如互联网或 gps。如果单例被操作系统杀死,那么简单的“getInstance”不会有多大好处,因为单例需要以某种方式获取上下文。我已经阅读了有关扩展 Application 类并在那里创建静态成员上下文的信息,但是这个变量必须是 volatile 并且如果整个应用程序处于某种重启后崩溃/终止状态,它可能返回 null。感觉不安全。
此外,主人也应该有可能以某种方式打开用户对话框以向用户显示警告等。这些警告在整个应用程序中看起来应该是相同的,开发人员不必担心它何时或为何突然弹出。现在,这些消息显示为覆盖所有内容的自定义祝酒词。当然,它们需要上下文,如果应用程序即将关闭,则可能会出现问题。
总而言之,这就是我们所处的混乱局面,我正在寻找解决方案。
那么我如何创建一个安全的主对象或活动(甚至是服务?!),它可以将信息传递给不同的活动并发布警告等(甚至可能有能力关闭活动或至少命令它们在不需要的情况下关闭自己注册一个 can_close 接口)。
它应该是安全的,如果在崩溃后 android 仅重新启动处于活动状态的活动,它会以某种方式设法也重新启动或至少具有/提供与以前相同的信息。
欢迎每个想法,但无法对应用程序进行全面检修(缺乏时间和人力)