如何解决Android:DataStore优于SharedPreferences的好处
Android Jetpack团队最近发布了DataStore库(仍处于Alpha中),作为使用两种实现保存简单数据的一种方式:
- 首选项数据存储区具有与SharedPreferences类似的功能,并用于存储简单的键/值对。
- Proto DataStore用于存储自定义数据类型,并且需要创建模式。
我们为什么不使用 sharedPreferences 用于简单的数据类型,而不使用 Room 用于更复杂的存储,而不是使用 DataStore 。
在ANDROID中使用数据存储,而不是使用共享首选项(对于简单数据)和ROOM(对于复杂数据),有什么好处。
解决方法
在Florina Mutanescu之后引用
,SharedPreferences有几个缺点:同步API看上去可以安全地在UI线程上调用,没有用于发出错误信号的机制,缺少事务API等。 DataStore替代了SharedPreferences,解决了这些缺点中的大多数缺点。 DataStore包括使用Kotlin协程和Flow的完全异步API,可处理数据迁移,保证数据一致性并处理数据损坏。
对于简单数据使用 Preference DataStore ,对于复杂数据使用 Room 。
首选项数据存储相对于“旧的” SharedPreferences具有很大的优势,例如:
- 用于存储和读取数据(流)的异步API
- 可以安全地从UI线程(位于下面的Dispatchers.IO)进行调用
以及其他许多好处,例如事务性API,可确保一致性。 查看我的博客文章,了解如何通过3个步骤轻松实现它: https://vladsonkin.com/3-practical-steps-to-master-android-datastore/
而且我不会使用Proto DataStore,因为类型安全性功能带来了Protobuf的复杂性-您需要学习一些有关它的知识,并向项目中添加大量代码。查看此博客文章以获取更多信息: https://vladsonkin.com/proto-datastore-android-is-it-worth-it/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。