【发布时间】:2018-08-12 04:33:31
【问题描述】:
我是 Android 开发新手,第一次尝试在 RecyclerView 和 SQLite 数据库之间实现数据绑定。现在我一直在搜索有关该主题的示例和教程,但发现的信息比我预期的要少。
我找到的几个解决方案,例如:Display SQLite data in RecyclerView,似乎总是在数据库中查询 所有 数据,将其递归存储到 List 中,然后将其传递给 RecyclerView.Adapter .然后,适配器类通过引用 List<Item> 中的项目来浏览项目。
现在来回答实际问题:这个解决方案聪明吗?我是一个爱好程序员,因此我远不是数据库和/或内存设计的专家。这个解决方案虽然让我很头疼,因为查询数据库中的所有项目并将它们存储在一个数组中似乎不仅破坏了查询 SQLite 数据库的优势,而且似乎有污染内存的风险(从而下降表现)。因此:是否有更好的解决方案将数据库数据绑定到 RecyclerView 或者 Array<Item>-Query-All-Solution 是否适合此目的?
【问题讨论】:
-
你绝对 100% 正确 - 使用 this 适配器甚至更好:github.com/blandware/android-atleap/blob/master/atleap-core/src/… - 对于这个我不知道作者为什么决定让它成为
abstract- 你可以简单地删除它关键字 -
不:不要使用任何分页:查询本地 sqlite 数据库的最糟糕的想法
-
@pskink:顺便说一句,你为什么称它为“最坏的主意”?
-
@pulp_fiction 因为不清楚如何正确实施它,它很慢,糟糕的用户体验设计,最终也可能导致
OutOfMemoryErrors -
@pskink : 那么你打算如何获取 1000 或 100 万条记录?