我的应用程序有各种活动和碎片。每次启动应用程序时,我都会从我的Contact
类中的数据库中检索一些记录(Application
s)并将其存储在当前的应用程序会话中。
我有一个名为Contact
的对象/实体,其中有几个存储在数据库中。事实证明,根据我的活动的不同观看要求,每个活动都需要一个不同的"联系相关数据的视图。
对于前者,ContactsListActivity
可能只想保留Contact
(s)列表,而MessageRecordsActivity
可能会显示Contact
及其相关Message
}}第
而且,我无法在Application
课程中检索太多数据,否则我的记忆会膨胀。因此,从Db按需加载数据的所有组件最终都具有相同Contact
的副本。例如,ContactsListActivity
依赖于List<Contact>
的Application类,但MessageRecordsActivity
从Db按需检索数据并得到Map<Message, Contact>
。这些新检索的Contact
与Message
配对可能会与Contact
中的某些List<Contact>
重叠
关键是每当我查询Db时,我最终都会检索 fresh Contact
。现在,你不能为此归咎于Db代码(因为每个查询都会产生新数据),但我想要的是每当我从任何地方检索Contact
并将其与任何其他对象关联时,必须最终成为记忆中的单一副本。同样,如果某个组件在一个位置更新Contact
,则必须反映在所有其他App组件中。
我的要求也变得复杂,因为我有动态生成的新数据,还必须更新到所有数据源。
我目前尝试管理Application类中的数据的方法已经让我难以管理。是否有最佳实践,框架组件/ API或建议用于管理我的App数据的任何工具?
注意: 我查看了ContentProvider
的文档,但在从Db和检索时共享数据时似乎有用与其他应用。我的要求是关于物理内存本身的数据管理。