Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用改装中的另一个列表更新房间中的对象列表_Android_Kotlin_Retrofit - Fatal编程技术网

Android 使用改装中的另一个列表更新房间中的对象列表

Android 使用改装中的另一个列表更新房间中的对象列表,android,kotlin,retrofit,Android,Kotlin,Retrofit,我有一个对象列表(每个对象代表一个文件的元数据),我将这个列表保存在一个使用Room的表中,以便在脱机时查阅数据。每次应用程序启动并且网络连接可用时,Reformation都会下载更新的文件列表,我必须更新数据库中的列表 第一种简单的策略是,不管已经存储的条目是什么,只需对表进行nuke操作,然后再次写入每个条目。这显然不是最优的 第二种方法是建立一个删除条目的列表和一个添加条目的列表,在两个列表中都有更新的条目 我正在使用一个助手类来实现这一点,如何优化这个过程 主类 va

我有一个对象列表(每个对象代表一个文件的元数据),我将这个列表保存在一个使用Room的表中,以便在脱机时查阅数据。每次应用程序启动并且网络连接可用时,Reformation都会下载更新的文件列表,我必须更新数据库中的列表

  • 第一种简单的策略是,不管已经存储的条目是什么,只需对表进行nuke操作,然后再次写入每个条目。这显然不是最优的
  • 第二种方法是建立一个删除条目的列表和一个添加条目的列表,在两个列表中都有更新的条目
我正在使用一个助手类来实现这一点,如何优化这个过程

主类

        val filesManager = filesManager(appContext)
        filesManager.compareEntries(remoteEntries, viewModel.fileEntries)

目前我使用的是第一种方法,文件条目取自数据库上的静态(非实时数据)查询。谢谢您的建议。

我建议您查看分页库文档:

即使您的用例可能不是精确的分页,您也会在阅读该文档(以及提供的示例)时发现适用于任何服务器+DB数据体系结构的良好指导


比如定义一个唯一的真相来源,什么时候数据被认为过期,什么触发了你可以在那里找到的新数据的刷新。这可能会引导您找到您想要的答案。

谢谢,但遗憾的是,我只有几个改装电话,没有其他电话,因此我正在尝试了解这些情况下的最佳做法(如果存在的话)。当然,插座或类似的东西会是一个更好的解决方案,但我无法控制。对于少量的更新,第一种策略可能就足够了,但我不确定。无论如何,我一定要看一下指南,再次感谢!