1. 組件刷新時機
根據(jù)官方文檔描述:
小組件預算的適用周期為 24 小時尾组。WidgetKit 會根據(jù)用戶的日常使用模式調整 24 小時窗口囱挑,這意味著每日預算不一定會在午夜重置援岩。對于用戶經(jīng)常查看的小組件嫉晶,每日預算通常包括 40 到 70 次刷新稠曼。這一速率可以大致?lián)Q算為每 15 到 60 分鐘重新載入一次小組件陆馁,但是由于涉及到多個因素,這些時間間隔通常會有所不同芋忿。
在下列情況中烫止,WidgetKit 不會將重新載入次數(shù)計入小組件的預算:
1. 小組件的包含 App 在前臺蒋荚。
2. 小組件的包含 App 有活躍的音頻或導航會話。
3. 系統(tǒng)語言區(qū)設置發(fā)生更改馆蠕。
4. 動態(tài)類型或輔助功能設置發(fā)生更改期升。
TimeLine 刷新機制:
TimelineReloadPolicy | |
---|---|
atEnd | 當前組展示完成后請求,根據(jù)測試現(xiàn)象來看是當前Timeline里面的entry事件處理完成以后回再次 執(zhí)行 getTimeline方法 |
never | 永遠不主動請求, 當前entry執(zhí)行完畢以后 就結束了 |
after | 設定一個刷新時間荆几,到點請求吓妆,可以設置定時觸發(fā) |
關于刷新測試出來的一些情況:
- 如果當前widget沒有在首頁展示出來赊时,刷新時間會晚一些吨铸。
- 系統(tǒng)調用下一次 getTimeLine 事件時間是不確定的,并不是嚴格按照我們寫的時間
- 在debug調試的時候祖秒,并不會被限制70次刷新诞吱,刷新頻率也基本上是按照代碼設置的間隔進行刷新的,但是release情況并不會這樣子竭缝。