HarmonyOS 鸿蒙Next关于用户首选项的一些问题
HarmonyOS 鸿蒙Next关于用户首选项的一些问题 应用场景:user01偏好字体大小是40,user02偏好字体大小是20,账号切换后app的字体大小能自动调整为当前登录用户的偏好字体大小。
上述的应用场景可以用Preferences完成吗?
我注意到获取Preferences实例的preferences.getPreferences
方法里需要传 preference的名称,所以猜测账号切换时,重新获取一次preference的实例应该就行了。
但我实际尝试下来碰到了问题
默认字体大小为50
第一次打开应用,preferenceName ='user01'
字体大小设置为40
修改代码preferenceName ='user02'
,重新打开应用,字体大小设置为20
修改代码preferenceName ='user01'
,重新打开应用,发现字体大小又变成了默认的50
太奇怪了,原来的preference文件难道被删除了?
我不修改preferenceName,以user01设置完字号大小,再重新打开应用字号大小是有成功保存的。
更多关于HarmonyOS 鸿蒙Next关于用户首选项的一些问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
- getPreferences是异步的,你确定没有同步使用吧
- 写入文件的时候需要调用flush()方法,确定调了没?
- 不要用模拟器测,要用真机测,测的时候在开发工具上要勾选允许覆盖安装选项(entry–>edit config–>keep application data),不然每次运行都会删除手机里的app重新安装,那就每次启动都是默认值了。
更多关于HarmonyOS 鸿蒙Next关于用户首选项的一些问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
解决啦非常感谢!是因为我没有勾选允许覆盖安装选项。
HarmonyOS鸿蒙Next中的用户首选项(Preferences)是一种轻量级的数据存储方式,主要用于存储应用的配置信息或用户偏好设置。它基于键值对(Key-Value)的形式,支持存储基本数据类型如字符串、整型、布尔值等。
在鸿蒙Next中,用户首选项的API位于ohos.data.preferences
包中。开发者可以通过Preferences
类来创建、读取、更新和删除首选项数据。首选项数据存储在本地文件中,每个应用有独立的存储空间,数据默认加密存储,确保安全性。
使用getPreferences
方法可以获取指定名称的首选项实例,通过putString
、putInt
等方法写入数据,使用getString
、getInt
等方法读取数据。写入数据后,需调用flush
或commit
方法将数据持久化到文件。
首选项适用于存储小规模、非结构化数据,不适合存储大规模或复杂数据。对于需要频繁读写或数据量较大的场景,建议使用其他存储方式如关系型数据库或分布式数据对象。
鸿蒙Next的首选项API与Android的SharedPreferences类似,但在实现和细节上有所优化,更符合鸿蒙系统的设计理念。