1. 组件刷新时机
根据官方文档描述:
小组件预算的适用周期为 24 小时。WidgetKit 会根据用户的日常使用模式调整 24 小时窗口,这意味着每日预算不一定会在午夜重置。对于用户经常查看的小组件,每日预算通常包括 40 到 70 次刷新。这一速率可以大致换算为每 15 到 60 分钟重新载入一次小组件,但是由于涉及到多个因素,这些时间间隔通常会有所不同。
在下列情况中,WidgetKit 不会将重新载入次数计入小组件的预算:
1. 小组件的包含 App 在前台。
2. 小组件的包含 App 有活跃的音频或导航会话。
3. 系统语言区设置发生更改。
4. 动态类型或辅助功能设置发生更改。
TimeLine 刷新机制:
TimelineReloadPolicy | |
---|---|
atEnd | 当前组展示完成后请求,根据测试现象来看是当前Timeline里面的entry事件处理完成以后回再次 执行 getTimeline方法 |
never | 永远不主动请求, 当前entry执行完毕以后 就结束了 |
after | 设定一个刷新时间,到点请求,可以设置定时触发 |
关于刷新测试出来的一些情况:
- 如果当前widget没有在首页展示出来,刷新时间会晚一些。
- 系统调用下一次 getTimeLine 事件时间是不确定的,并不是严格按照我们写的时间
- 在debug调试的时候,并不会被限制70次刷新,刷新频率也基本上是按照代码设置的间隔进行刷新的,但是release情况并不会这样子。