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