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

时间:2012-04-05 20:31:16

标签: java android sqlite business-logic

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

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

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

B)直接使用数据库引擎,每次从那里恢复显示或工作所需的元素。例如,列出 pilots 查询数据库并使用CursorAdapter列出它们。如果选择了飞行员,则在数据库中查询他的汽车并显示其值。任何更改都会直接保存到数据库并从那里刷新。

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

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

1 个答案:

答案 0 :(得分:1)

当你需要一个好的表现和速度时,如果你做类似游戏的事情,解决方案A是好的。

但是解决方案B适用于通常的应用程序,用户从一个活动转到另一个活动。解决方案B也有助于节省内存(如果你有很多对象,你可能会在解决方案A中遇到内存错误)