【HarmonyOS】基于JS UI的Java服务卡片如何实现动态定时刷新

【问题背景】

Java服务卡片在官方文档中主要有两种周期性刷新方式,一种是定点刷新,即在每天的某个时间点刷新,另一种是定时刷新,即间隔固定的时间后刷新服务卡片,虽然这两种方式已经可以满足我们绝大多数的卡片刷新需求,但是还是不够灵活。首先这些时间的设置都需要在config.json的forms模块中去配置,应用安装以后想要再修改刷新的时间就难。另外,一些提醒类的应用需要自己设置下次刷新提醒的时间,通过forms中配置时间的方式不能满足这种需求。此外,定时刷新的时间间隔最低是30分钟,会出现刷新迟滞的情况。

 

【接口与使用条件】

对于这种情况,服务卡片提供动态定时刷新的接口setFormNextRefreshTime,可以让卡片提供方来设置下次相对的定时刷新时间。不过这种方式有以下几点限制:1、刷新时间最小间隔是5分钟;2、开机后,最多定时刷新50次,在每天的0点更新;3、如果卡片可见,触发卡片刷新。

 

【使用步骤】

使用方法很简单setFormNextRefreshTime(long formId, long nextTime)其中formId表示需要刷新的卡片ID,nextTime表示时间间隔,单位是秒,最小是300。

运行这个方法以后达到设置的时间就会触发onUpdateForm,最后调用updateform就可以刷新卡片了。

 

 欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

posted @ 2023-03-24 10:45  华为开发者论坛  阅读(41)  评论(0编辑  收藏  举报