LESSON 34 / 575 分钟

通知、后台任务与 Live Activities

系统决定 App 何时有机会执行。不同需求要选择不同机制。

用你的前端经验理解

不要把 setInterval 或常驻服务直接搬到后台;通知、任务调度和持续活动各有独立的系统契约。

为什么需要它

通知、后台任务与 Live Activities 解决不同问题。通知把重要事件送到用户面前,后台任务给系统调度的有限执行机会,Live Activities 展示正在进行活动的状态。它们不能组合成“应用关闭后仍任意常驻运行”的承诺,产品需求必须先接受系统调度的不确定性。

它是怎样工作的

本地通知适合已知时间的提醒,远程通知来自服务端事件。后台刷新执行时间由系统决定,不宜用于精确闹钟或持续轮询;Live Activities 的更新与持续时间也受系统规则限制。计划改变或事项删除后,需要撤销旧通知,防止数据已经更新而提醒仍使用旧内容。

把关键概念连起来

1

通知

本地通知由设备调度;远程通知通常由服务端经 APNs 推送。请求授权,处理前台展示与点击路由。

2

后台

BGTaskScheduler 由系统择机执行,不能保证精确时间。静默推送也不保证即时执行。

3

实时活动

ActivityKit 适合展示正在进行的任务状态,受平台与生命周期限制,不是无限后台运行通道。

为待办事项安排提醒

  1. 保存事项后为提醒生成稳定标识,授权允许时提交本地通知请求,并记录与事项的关联。
  2. 修改时间时替换对应请求,删除时取消;不要每次进入详情都新建一个随机 ID 的通知。
  3. 用户点击通知进入 App 时重新查找事项;它可能已经完成或删除,应展示合理状态。

这里需要你亲自判断

“每分钟后台请求一次接口”不是通用可行方案;提醒时刻可优先考虑合适的本地通知。

做一个小练习

为一个倒计时工具选择通知与状态恢复方式,解释为什么不依赖后台秒级计时器。

  1. 为同一事项连续改三次时间,确认只保留最后一个有效提醒。
  2. 关闭通知权限,保证事项仍能保存,并清楚提示提醒未开启。
展开参考思路与验收标准

业务保存与提醒安排是两步独立结果。精确到时的体验应使用对应系统能力,不能用后台任务每分钟检查一次来模拟系统闹钟。

BGTaskScheduler 能保证每天 9:00 准时执行代码吗?

继续查阅官方资料
Apple Developer 官方资料

本课聚焦核心认知。具体 API、系统要求与发布政策,以当前官方文档和工程验证为准。

答对理解题后即可标记完成