我有一个 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
中,同时检查 的大小是否使用
的值为 100。如果大小为 100,则遍历列表并更新数据库。size()
方法,ArrayList
ArrayList 的 API 在这里 Array List
--编辑--
当您执行此操作时,请不要忘记在关闭应用程序时将结果更新到数据库。否则,如果计数器没有达到 100,则数据库永远不会更新,并且在下次启动时您将再次看到访问过的记录。
关于java - 广泛的更新声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10406050/