当用户解锁他们的手表时,复杂功能数据是最新的?
Having complication data up to date when the user unlocks their watch?
我目前正在开发一个简单的应用程序,它可以在 watchOS 复杂功能中显示通过网络接收的数据。值得注意的是,在需要新的网络提取之前,此数据仅与约 30 分钟相关。
我想让复杂功能在用户早上解锁手表时保持最新状态(这是 Apple 提出的一个常见用例)。
是否可以在用户解锁手表时接收某种后台任务?如果我安排了一个后台任务,并且手表在刷新时被锁定并正在充电,后台任务还会触发吗?当用户醒来并解锁手表时,我可以使用哪些技术为用户准备好数据?是否有专门针对手表锁定时后台任务的文档?
我会使用应用程序生命周期文档 here,并且很可能会选择:
在 applicationDidEnterBackground() 中,我会设置一个标志(当
并发症最后更新)。我建议你使用单例,这样它就可以在你的应用程序的任何地方访问。
然后在 applicationDidBecomeActive() 中我会拿起旗帜,进行比较
与当前时间,并通知活动 ViewController 到
如果超过 30 分钟,则刷新其数据。
如果标志不存在,因为应用程序已终止,或者它是
首先启动,然后无论如何刷新(设置过去 24 小时的日期,以
使用与 1/,2/)
相同的逻辑
如果你想让它更永久,使用 NSDefaults 来存储上次更新并发症的时间。
据我所知,手表在锁定状态下与解锁状态下的工作方式略有不同。
一个区别是并发症的显示:
您可以指定隐私行为,即 what the clock face displays as complication (you can select what is displayed on the lock screen).
因此,在我看来,当手表锁定并充电时,可以 运行 按计划执行后台任务。这样手表解锁后数据会自动就绪。
因此,没有专门的文档记录手表锁定时会发生什么,除了一些特殊情况,如锁定状态下表盘上显示的内容。
我目前正在开发一个简单的应用程序,它可以在 watchOS 复杂功能中显示通过网络接收的数据。值得注意的是,在需要新的网络提取之前,此数据仅与约 30 分钟相关。
我想让复杂功能在用户早上解锁手表时保持最新状态(这是 Apple 提出的一个常见用例)。
是否可以在用户解锁手表时接收某种后台任务?如果我安排了一个后台任务,并且手表在刷新时被锁定并正在充电,后台任务还会触发吗?当用户醒来并解锁手表时,我可以使用哪些技术为用户准备好数据?是否有专门针对手表锁定时后台任务的文档?
我会使用应用程序生命周期文档 here,并且很可能会选择:
在 applicationDidEnterBackground() 中,我会设置一个标志(当 并发症最后更新)。我建议你使用单例,这样它就可以在你的应用程序的任何地方访问。
然后在 applicationDidBecomeActive() 中我会拿起旗帜,进行比较 与当前时间,并通知活动 ViewController 到 如果超过 30 分钟,则刷新其数据。
如果标志不存在,因为应用程序已终止,或者它是 首先启动,然后无论如何刷新(设置过去 24 小时的日期,以 使用与 1/,2/)
相同的逻辑
如果你想让它更永久,使用 NSDefaults 来存储上次更新并发症的时间。
据我所知,手表在锁定状态下与解锁状态下的工作方式略有不同。
一个区别是并发症的显示:
您可以指定隐私行为,即 what the clock face displays as complication (you can select what is displayed on the lock screen).
因此,在我看来,当手表锁定并充电时,可以 运行 按计划执行后台任务。这样手表解锁后数据会自动就绪。
因此,没有专门的文档记录手表锁定时会发生什么,除了一些特殊情况,如锁定状态下表盘上显示的内容。