Android - 本地数据库(SQLite)与内部类(通过单例)

时间:2015-04-21 00:06:00

标签: java android sqlite singleton

让我们考虑一下这个表:

enter image description here

想象一下,我们的Android设备中存储了一个存储在本地数据库(SQLite)中的表。据我所知,Android可以快速有效地管理数据库。

如何创建一个名为 PeopleLab 的单例,它通过该表中的每一行创建一个对应的类 Person ,用表格填充其属性?在这个特定的例子中,我们将有11个 Person 类,它们都由 PeopleLab 单例管理。

我在想,什么更有效率? (即耗时少,资源消耗少,带来更好的用户体验)。使用CursorAdapter访问本地数据库,还是访问单例 PeopleLab

修改

如果我们有(比方说)100行而不是11行,那么答案是否会改变,每行包含(比方说)100个属性而不仅仅是6个?

我为什么要这样做?

我在Android项目中工作,我需要连接到远程数据库并将其所有内容复制到本地数据库(使用SQLite)。由于Remote Dabase经常更改其内容,因此该过程每天要重复近10次。

在开始编写代码之前,我想知道在创建本地数据库和Singleton (包含所有相应的类)时是否有有任何实际好处。我的第一个想法是Android比管理本地数据库的数据更快地管理类。这就是使用Singleton的重点。

感谢。

1 个答案:

答案 0 :(得分:1)

  

我的问题是:是否有任何真正的好处"复制"本地数据库的内容为单例,并使用该单例而不是CursorAdapter?我们是否获得了任何性能提升?

充其量可能很小。 CursorAdapter很可能会将数据直接发送到视图中,但也必须将数据复制到该行的某个位置,这就是您的单例所做的事情。并且你可能写的效率低于Android SDK版本,后者经过多次迭代后仍然存在。同样,收益将是最小的(在CursorAdapter侧),所以不要让这影响您的设计和实施。按照你的意愿去做。镍和你的处理能力很好,但在现代设备上,这种担忧几乎不存在。