java - 广泛的更新声明

标签 java android database

我有一个 cooking 食谱应用程序,数据库中存储了大约 4000 个菜谱,当用户打开该应用程序时,我有一个显示单个菜谱的 ViewPager,滚动时他将获得新菜谱,如果用户关闭应用程序并重新打开它,我想要什么我想展示他以前没有见过的食谱。

到目前为止我已经尝试过

在我的食谱表(_id,name,content,view_rank)中,我将view_rank字段以0的值开头,所以如果当viewpager 显示此食谱,它将增加 view_rank 所以在我的查询中我这样做

SELECT * FROM RECIPES ORDER BY view_rank ASC 所以我得到了新的。无论如何,每次增量都会导致应用程序触发一个新线程来更新数据库,我正在考虑的是实现一个自定义缓冲区,其中保存需要增量的食谱的 id,因此,如果缓冲区达到限制,可以说 100 id i将启动一个新线程并进行事务来更新这 100 个 id。有一个简单的解决方案吗?

最佳答案

只需使用 ArrayList 并在用户滚动浏览 ViewPager 中的结果时将 _id 添加到其中。我假设您正在使用按钮滚动页面,因此当您单击该按钮时,将 _id 添加到 ArrayList 中,同时检查 的大小是否使用 size() 方法,ArrayList 的值为 100。如果大小为 100,则遍历列表并更新数据库。

ArrayList 的 API 在这里 Array List

--编辑--
当您执行此操作时,请不要忘记在关闭应用程序时将结果更新到数据库。否则,如果计数器没有达到 100,则数据库永远不会更新,并且在下次启动时您将再次看到访问过的记录。

关于java - 广泛的更新声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10406050/

相关文章:

java - 如何使用 Selenium WebDriver 克服 SSL 证书

java - Android:Socket-Connection 导致延迟和大量 GC 操作

android - 是否可以从 PreferenceActivity 中的 Preference 启动 DialogFragment?

android - 阻止 Eclipse 构建 .xml 文件

java - 如何使用 Eclipse 在一般的 java 项目(不特定于 android)中创建 SQLite 数据库?

mysql字符串转换返回0

java - 这是在 java 中构建登录/注册/管理区域类型网站的简单方法

java - 什么基于 JVM 的脚本语言支持@WebService 在运行时创建服务?

java - 如何在Java中创建一个对象的多个实例

database - 在空表中查找 SQLite 列名