鸿蒙开发过程中PersistentStorage和Preference的区别
persistentStorage:提供持久性的数据存储,数据在设备上保持不变,即使应用关闭或设备重启。UI更新之后存储数据。Preferences:存储的数据不超过一万条,Key键为string类型,要求非空且长度不超过1024个字节。不建议进行大量的数据持久化,因为PersistentStorage写入磁盘的操作是同步的,大量的数据本地化读写会同步在UI线程中执行,影响UI渲染性能。Prefe
1.存储方式不同:
persistentStorage:提供持久性的数据存储,数据在设备上保持不变,即使应用关闭或设备重启。它主要用于将选定的AppStorage属性保留在设备磁盘上,以确保这些属性在应用程序重新启动时的值与应用程序关闭时的值相同。UI更新之后存储数据。
Preferences:可看做是配置项,为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据。Preferences中的数据会被缓存在内存中,因此它可以获得更快的存取速度。UI更新之前存储数据。
2.大小和类型
PersistentStorage:持久化变量最好是小于2kb的数据。不建议进行大量的数据持久化,因为PersistentStorage写入磁盘的操作是同步的,大量的数据本地化读写会同步在UI线程中执行,影响UI渲染性能。
Preferences:存储的数据不超过一万条,Key键为string类型,要求非空且长度不超过1024个字节。如果Value值为string类型,长度不超过16 * 1024 * 1024个字节。它适用于存储小型配置项数据。
3.使用场景
PersistentStorage:适用于存储需要在应用关闭或设备重启后仍然保留的数据。例如,应用的某些状态或配置信息,这些信息需要在应用重新启动时恢复。
Preferences:通常用于保存应用的配置信息,如用户的个性化设置(字体大小、是否开启夜间模式等)。由于数据被缓存在内存中,因此访问速度快、效率高,但不适合存储大量数据。如果想要存储大量数据,建议使用RDB数据库。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)