我正在设计一个涉及解析大型 XML 并保持序列化数据在整个应用程序中可访问的应用程序。我打算有一个数据对象来保存数据,并且每个组件(尽管不是每个组件)都可以访问数据。
我希望这些数据是非持久的,从而应用程序解析 XML 并将数据保存在内存中。请注意,此数据会很大(XML 文件大于 2MB)。另外,当用户切换到另一个应用程序时,我希望数据在那里。
我研究了可能的解决方案,例如:
- 静态对象
- 单身人士
- 扩展应用
- 使用服务
- 使用 SQLite 数据库(我不想这样做)
我不想陷入单例与扩展应用程序等无休止的争论,但我也想做单元测试,而且我听说单例和静态对象很难测试。
任何人都可以对此有所了解吗?最优雅的方法是什么?
编辑:数据是否应该持久化?使其持久化意味着,理论上,将对 XML 进行一次解析,将其序列化,将数据存储在数据库中,并且可以使用对象从组件访问该数据。听起来怎么样?
编辑 2:我认为我要在整个应用程序中保持数据可访问的方式是使用一个 SQLite 数据库来存储数据。
使用 XML 文件,我将解析数据并在首次启动时使用 SQLiteOpenHelper 创建的子类将其放入数据库。当需要数据时,我将使用读取访问权限使用子类对数据库进行查询。每个组件(活动/服务/等)都有自己的 SQLiteOpenHelper 实例来查询数据库,从而可以访问数据。这听起来如何?