HarmonyOS 鸿蒙Next:首选项、卡片和context的关系是什么?

发布于 1周前 作者 nodeper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:首选项、卡片和context的关系是什么?

在同一项目中,在EntryFormAbility中,我往首选项中写入了卡片ID,使用的是FormContext,重启后,在UIAbility中,能通过UIAbility的context获取到之前卡片写入的数据

从而我忽然意识到,事实上,首选项使用的应该是context中的某个特定属性来创建首选项实例和访问首选项的实际文件,而卡片和UIAbility中应当都拥有这个属性,并且是统一的

但是我不理解的是为什么如果添加卡片后不重启,卡片进程写入首选项,而UIAbility就不能读取新数据,希望能有人能解答一下我的疑惑

更多关于HarmonyOS 鸿蒙Next:首选项、卡片和context的关系是什么?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

卡片和主应用应该不在一个进程运行,尝试主应用读取preferences数据前,先清除一下Preferences实例缓存或删除名为给定Key的存储键值对,这样读取时会从盘里读取同步后的最新数据。

更多关于HarmonyOS 鸿蒙Next:首选项、卡片和context的关系是什么?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


您的意思是,如果没有清除实例缓存或者清除这个存储的键值对,在获取新的首选项实例的时候,它会返回之前已经创建的首选项实例,而不是重新创建一个新的,所以并不会从盘中获取最近的数据,这样我理解了,谢谢,

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-data-preferences-V5#preferencesremovepreferencesfromcacheh

-/$%-+

差不多是这个意思,可以看下preferences.removePreferencesFromCache介绍:

应用首次调用getPreferences接口获取某个Preferences实例后,该实例会被缓存起来,后续再次getPreferences时不会再次从持久化文件中读取,直接从缓存中获取Preferences实例。调用此接口移出缓存中的实例之后,再次getPreferences将会重新读取持久化文件,生成新的Preferences实例。

您的意思是每次需要读取的都是新的持久化文件生成的Preferences实例嘛?

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

是的,我们遇到的相同的问题,

在HarmonyOS(鸿蒙)系统中,首选项、卡片(Widgets)和context之间的关系可以从以下几个方面理解:

首选项:通常指的是用户在系统设置或应用内所做的个性化配置,如主题、字体大小、通知设置等。这些首选项存储在系统中,用于确保用户在下次使用设备或应用时能够恢复之前的设置。

卡片:是鸿蒙系统提供的一种轻量级界面元素,用于快速展示信息或提供快捷操作。卡片可以独立于应用存在,用户可以在桌面或负一屏等位置自由添加和删除卡片。卡片的内容通常根据用户的兴趣、行为或时间等因素动态更新。

context:在编程和操作系统中,context通常指的是上下文环境,包括用户当前的状态、设备配置、系统环境等。在鸿蒙系统中,context对于卡片和首选项的呈现尤为重要。它决定了哪些首选项对用户可见,以及卡片如何根据用户的上下文环境展示合适的信息。

简而言之,首选项决定了用户的个性化设置,卡片是展示这些设置和信息的一种界面形式,而context则是影响首选项和卡片呈现的关键因素。这三者共同作用于鸿蒙系统,为用户提供个性化的、动态变化的用户体验。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部