让我们考虑一下这个表:
想象一下,我们的Android设备中存储了一个存储在本地数据库(SQLite)中的表。据我所知,Android可以快速有效地管理数据库。
如何创建一个名为 PeopleLab 的单例,它通过该表中的每一行创建一个对应的类 Person ,用表格填充其属性?在这个特定的例子中,我们将有11个 Person 类,它们都由 PeopleLab 单例管理。
我在想,什么更有效率? (即耗时少,资源消耗少,带来更好的用户体验)。使用CursorAdapter访问本地数据库,还是访问单例 PeopleLab ?
修改
如果我们有(比方说)100行而不是11行,那么答案是否会改变,每行包含(比方说)100个属性而不仅仅是6个?
我为什么要这样做?
我在Android项目中工作,我需要连接到远程数据库并将其所有内容复制到本地数据库(使用SQLite)。由于Remote Dabase经常更改其内容,因此该过程每天要重复近10次。
在开始编写代码之前,我想知道在创建本地数据库和Singleton (包含所有相应的类)时是否有有任何实际好处。我的第一个想法是Android比管理本地数据库的数据更快地管理类。这就是使用Singleton的重点。
感谢。
答案 0 :(得分:1)
我的问题是:是否有任何真正的好处"复制"本地数据库的内容为单例,并使用该单例而不是CursorAdapter?我们是否获得了任何性能提升?
充其量可能很小。 CursorAdapter
很可能会将数据直接发送到视图中,但也必须将数据复制到该行的某个位置,这就是您的单例所做的事情。并且你可能写的效率低于Android SDK版本,后者经过多次迭代后仍然存在。同样,收益将是最小的(在CursorAdapter
侧),所以不要让这影响您的设计和实施。按照你的意愿去做。镍和你的处理能力很好,但在现代设备上,这种担忧几乎不存在。