在我的Android应用程序中,我有一个从服务器上的JSON获取的对象(员工(列表。每当我打开应用程序时,它都会解析 JSON,创建 ArrayList 并填充 RecyclerView。我想创建一个数据库并从数据库而不是 JSON 加载数据(以便它也可以离线工作并且速度更快(。
我的问题是:如何保持数据库更新以确保我在 JSON 和数据库中具有相同的数据?
最好的方法是什么?例如,我注意到当我打开gmail应用程序时,即使我处于离线状态,它也会加载我的电子邮件,因此它也必须使用数据库。
编辑:通过使用DBFlow并在整个列表上调用save((解决了这个问题,它会自动决定是更新一行还是插入新行。
-
场景"数据库为空":显示空视图消息并从 API 端点获取数据 ->将其保存到数据库,然后从数据库填充回收器视图。
-
场景"数据库不为空":从数据库填充 ->尝试获取新数据,如果没有连接,它仍然显示旧数据,否则从第一个场景开始执行步骤。
此外,您可以比较填充 RecyclerView 的自定义类,以防止在重新加载相同数据时出现故障。