Java Android中内存中加载的逻辑与数据库中加载的逻辑

Java Android中内存中加载的逻辑与数据库中加载的逻辑,java,android,sqlite,business-logic,Java,Android,Sqlite,Business Logic,我有一个问题,关于一般Android应用程序显示静态和动态信息(带有持久信息)的最佳方法是什么: 让我们想象一个简单的应用程序,其中包含一些持久的集合以及这些项目之间的一些关系:例如,一个应用程序为用户显示一个飞行员列表、一个汽车飞行员列表和一个喜爱飞行员列表。用户可以手动刷新飞行员或汽车配置文件,新数据必须永久保存 A) 使用机制从数据库将相应的类和列表(例如)加载到逻辑类中,使用管理器访问它们(PilotManager),并反映持续影响这些对象的更改,同时反映数据库中的更改。应用程序运行时,

我有一个问题,关于一般Android应用程序显示静态和动态信息(带有持久信息)的最佳方法是什么:

让我们想象一个简单的应用程序,其中包含一些持久的集合以及这些项目之间的一些关系:例如,一个应用程序为用户显示一个飞行员列表、一个汽车飞行员列表和一个喜爱飞行员列表。用户可以手动刷新飞行员或汽车配置文件,新数据必须永久保存

A) 使用机制从数据库将相应的类和列表(例如)加载到逻辑类中,使用管理器访问它们(PilotManager),并反映持续影响这些对象的更改,同时反映数据库中的更改。应用程序运行时,这些对象将保留在内存中

B) 直接使用数据库引擎,随时从中恢复显示或工作所需的元素。例如,要列出导频,请查询数据库并使用游标适配器列出它们。如果选择了飞行员,则查询其汽车的数据库并显示其值。任何更改都会直接保存到数据库并从那里刷新

我通常使用方法A),因为它非常快,在交互中为用户提供了高响应度,因为(除了第一次加载)不需要数据库访问。 但是一位朋友告诉我B)更好,因为你使用更少的内存,你可以利用数据库引擎来处理复杂的搜索过滤器


这两种方法都有效吗?有人错了?谢谢

如果您需要良好的性能和速度,那么解决方案A是很好的

但解决方案B适用于用户从一个活动切换到另一个活动的常规应用程序。此外,解决方案B有助于节省内存(如果您有很多对象,则在解决方案a中可能会出现内存错误)