我读了这篇文章https://medium.com/@ianhlake/hidden-gems-of-android-o-7def63136629。这是在那里写的:
SharedPreferences
可以在Android O中继续工作吗?我们是否需要通过实现PreferenceDataStore
来实现自己的用于将数据存储在键值对中的机制
任何人都可以帮助使用SharedPreferences
实现新的PreferenceDataStore
的方法以及开发自己的实现的用例是什么?当前方法有什么缺点吗?
最佳答案
我想不了仅适用于完全使用PreferenceDataStore而不是SharedPreferences的情况,但是我确实认为如果您想一起使用它们会有所帮助。
SharedPreferences为您提供了一项很棒的服务,即当您更新应用程序时,数据仍然保留在首选项中,但是通过PreferenceDataStore,您还可以以与SharedPreferences中相同的格式存储数据。现在,假设您要使用相同的首选项界面,但想将这些值存储在云中而不是设备中,那是因为设备可能会崩溃。
PreferenceDataStore可以为您提供帮助的是,它为您提供了在任何地方存储数据和编写自己的实现的灵活性。尽管您可以随意替换它,但这并不意味着完全替换SharedPreferences。
例如,您可以在共享首选项中使用应用程序的访问 token ,并根据需要使用云,本地数据库或云或文件系统中的所有其他数据,还可以使用PreferenceDataStore接口(interface),写下自己的实现,然后用它。
即使在Google PreferenceDataStore中的开发人员文档链接中
https://developer.android.com/reference/android/preference/PreferenceDataStore.html
它写
因此,您可以看到,即使是google也不希望您一直使用PreferenceDataStore,这只是在您需要使用相同的Preferences样式存储键值对的时候,但是您想要实现自己的数据存储将为您提供比您当前在SharedPreferences中更大的灵活性。
例如,如果要获取SharedPreferences,然后将SharedPreferences数据放在云服务器上,该怎么办。您希望它在设备上,但也要在云上备份,在这种情况下,PreferenceDataStore可以为您提供帮助。