应用程序从网络中检索JSON格式的字符串,并对其进行解析以呈现给用户。
在以后或将来的会话中再次需要数据时,缓存数据的最佳方式是什么?
我正在考虑两种选择:房间和本地文件存储。
如果数据存储在一个文件中,则每次需要时都必须对其进行解析;但我认为从Room数据库检索数据需要一些时间。有人知道从计算成本的角度来看这两种操作的比较吗。
此外,假设我将所有数据存储在JSON字符串中,哪个选项将使用最少的存储空间?
谢谢,Marc
我想指出以下几点:
文件:
- 如果您将数据存储在一个文件中,您可能需要多次访问它来进行CRUD
- 每次需要数据时,都必须对其进行解析
- 您的应用程序必须向用户请求权限才能处理这些文件
房间:
- Room是一个SQLite抽象,它的开发完全是为了做您想要的事情,即在本地存储数据
- Room支持Kotlin协程,在这种情况下,DAO方法可以标记为挂起函数,以确保它们不会在主线程上执行。因此,在执行CRUD操作时,您的应用程序不会冻结
- 与将数据存储在文件中相比,Room为您的数据提供了安全性
- 使用本地比在文件中存储数据更快
在我看来,您应该使用Room,并在您的存储库/用例中实现单一真理源(SSOT(。