【发布时间】:2016-04-20 21:27:22
【问题描述】:
所以我有这个 Java 框架,这是我在使用 Swing 应用程序时制作的。这是其中一个更像是“我真的可以这样做吗?”的学术练习。比我用了很多的东西。基本上,它是这样工作的:
在启动时读取 XML 配置文件,其中包含包路径等信息。
扫描这些包以查找带注释的类,例如 Spring。带注释的类是传统 MVC 风格的资源(即模型、视图、控制器)。
将对匹配的类类型和方法的引用存储在单个全局存储类中。
提供来自中心类的静态方法,允许各种 MVC 组件通过反射相互通信,从而最大限度地划分应用程序组件,因为它们之间没有直接引用。
我真的很想在 Android 上使用它,但我知道我必须对其进行一些更改。我读过包扫描在 Android 上不能很好地完成,但我已经找到了解决方法。我主要关心的是读取 XML 配置文件和构建全局存储类。
在传统的 Java 应用程序中,这是在应用程序启动时完成的,并且数据会保存在内存中,直到应用程序关闭。下次启动时,再次读取配置,再次完成扫描等。然而,Android 有不同的生命周期,应用程序会根据内存需求在不同时间被终止/重新启动。
问题
当应用程序 a) 进入“睡眠”状态和 b) 被系统杀死以释放空间时,Android 内存模型如何处理内存中的数据?对于后一种情况,信息是否以某种方式保存?
基于前面的问题,我如何确保在应用程序的整个生命周期中读取配置文件并正确设置存储?我相信答案在 Android 应用程序类中,可能通过将框架与其生命周期联系起来,但我正在那里寻找指导。
我的背景主要是纯 Java,总体上我对 Android 还是比较陌生。
提前致谢。
【问题讨论】:
-
简单地说 1) 操作系统会处理这个问题,你无法真正控制应用程序的一部分何时被杀死。如果您想保存某些内容,请使用持久存储 2)我会说 Application 类是最初加载数据的最安全选择