Swift 当用户解锁手表时,是否有最新的数据?

Swift 当用户解锁手表时,是否有最新的数据?,swift,watchkit,watchos,clockkit,Swift,Watchkit,Watchos,Clockkit,我目前正在开发一个简单的应用程序,它可以在watchOS中显示通过网络接收到的数据。值得注意的是,在需要新的网络抓取之前,此数据仅在约30分钟内相关 我希望当用户在早上打开手表时(这是苹果公司提供的一个常见用例),这个复杂的问题是最新的 当用户解锁手表时,是否可能接收某种后台任务?如果我安排了一个后台任务,并且手表被锁定并在刷新时充电,后台任务还会启动吗?当用户醒来并解锁手表时,我可以使用什么技术为他们准备好数据?当手表被锁定时,有专门针对后台任务的文档吗?我会使用应用程序生命周期文档,并且很可

我目前正在开发一个简单的应用程序,它可以在watchOS中显示通过网络接收到的数据。值得注意的是,在需要新的网络抓取之前,此数据仅在约30分钟内相关

我希望当用户在早上打开手表时(这是苹果公司提供的一个常见用例),这个复杂的问题是最新的


当用户解锁手表时,是否可能接收某种后台任务?如果我安排了一个后台任务,并且手表被锁定并在刷新时充电,后台任务还会启动吗?当用户醒来并解锁手表时,我可以使用什么技术为他们准备好数据?当手表被锁定时,有专门针对后台任务的文档吗?

我会使用应用程序生命周期文档,并且很可能会选择:

  • 在applicationIdentinterbackground()中,我设置了一个标志(当 并发症(上次更新)。我建议你使用单例,这样你的应用程序中的任何地方都可以访问它

  • 然后在applicationIDBecomeActive()中,我将拿起标志,比较它 使用当前时间,并通知活动的ViewController 如果超过30分钟,请刷新其数据

  • 如果该标志不存在,因为应用程序已终止,或者它是一个 首先启动,然后无论如何刷新(将过去的24小时日期设置为 使用与1/,2/)中相同的逻辑


  • 如果要使其更持久,请使用NSDefaults存储上次更新复杂度的时间。

    据我所知,手表在锁定状态下的工作方式与解锁状态略有不同。
    一个区别是并发症的显示:
    您可以指定隐私行为,即(您可以选择)。
    因此,在我看来,当手表锁定并充电时,可以按计划运行后台任务。因此,当手表解锁时,数据将自动准备就绪。

    因此,除了一些特殊情况外,没有关于手表锁定时会发生什么的特殊文档,例如在锁定状态下手表表面上显示的内容。

    解锁手表时,是否会调用ApplicationIDBecMeactive()?我认为只有当应用程序进入前台时,即用户专门打开了你的应用程序。我认为applicationWillEnterForeground()之后总是会调用ApplicationIDBecMeactive(),请参见此处。我不确定什么时候调用更新代码是最好的,但简而言之,您可以简单地使用Apple的watchOs生命周期图,设置/获取上次更新的时间(文档中的转换“a”、“B”和“C”),并做出相应的反应。