我可以将我的共享首选项存储到Android应用程序中的缓存目录中吗?

问题描述

我有一些键值对要存储在缓存中。我知道sharedpreference是实现它的一种好方法。但是,似乎数据目录rath中的sharedpreference存储文件比缓存目录中的文件更重要。

在最佳实践中我该怎么做?谢谢。

解决方法

我建议使用DataStore-协议缓冲区。

DataStore是一种新的,经过改进的数据存储解决方案,旨在 替换SharedPreferences。建立在Kotlin协程和Flow的基础上, DataStore提供了两种不同的实现方式:Proto DataStore, 允许您存储类型化的对象(由协议缓冲区支持)和 首选项数据存储,用于存储键值对。数据已存储 异步,一致和事务性地克服了一些 SharedPreferences的缺点。

什么是协议缓冲区? 协议缓冲区是Google的与语言无关,与平台无关,可扩展的机制,用于对结构化数据进行序列化(例如XML),但更小,更快,更简单。您可以定义要一次构造数据的方式,然后可以使用生成的特殊源代码轻松地使用多种语言在各种数据流之间写入和读取结构化数据。

Source

Example