gpt4 book ai didi

ios - 在 WatchOS2 中使用 NSURLSession 后台任务

转载 作者:可可西里 更新时间:2023-11-01 01:37:35 25 4
gpt4 key购买 nike

想知道我们将如何在 watchOS 2 中使用 NSURLSession 后台任务。

我想在并发症唤醒时生成后台下载。我不清楚在哪里可以找到 application:handleEventsForBackgroundURLSession

WatchKit 扩展的哪一部分会被唤醒,我从哪里得到这个回调?这部分在文档中不是很清楚。

最佳答案

I want to spawn a background download whenever complications wake up.

如果您希望在复杂 Controller 中异步获取数据,您会发现 it is unreliable, as well as discouraged .

为避免不必要地耗尽复杂功能的执行时间预算,您可能需要考虑让手机处理后台获取,然后使用 WCSession 实例来 transferCurrentComplicationUserInfo。这将发送一条高优先级消息,该消息将唤醒您的扩展以传送数据。

此时,您要么:

  • 等待复杂 Controller 的预定更新发生,或者

  • 通过调用 reloadTimelineForComplicationextendTimelineForComplication 手动通知 ClockKit 更新您的复杂功能。

您可以在 watchOS 2 Transition Guide 中找到具体的详细信息,在更新您的并发症数据下。

更新数据的不同方法:

  • 通过扩展显式手动更新

    When you have new data for your complication, you must use the reloadTimelineForComplication: or extendTimelineForComplication: method of the CLKComplicationServer object to signal to ClockKit that your complication is ready to be updated. ... Calling these methods causes ClockKit to create your data source object and request new data from it.

  • 通过并发症 Controller requestedUpdateDidBegin

    安排自动更新(使用缓存数据)

    Scheduled updates are useful for apps whose data changes at predictable times. When a scheduled update occurs, ClockKit calls the requestedUpdateDidBegin or requestedUpdateBudgetExhausted method of your data source first. Use those methods to determine whether you have new data available.

  • 通过WKExtensionDelegate推送通知 didReceiveRemoteNotification

  • 通过 WCSession 手动更新 transferCurrentComplicationUserInfo

    When your iOS app receives updated data intended for your complication, it can use the Watch Connectivity framework to update your complication right away. The transferCurrentComplicationUserInfo: method of WCSession sends a high priority message to your WatchKit extension, waking it up as needed to deliver the data. Upon receiving the data, extend or reload your timeline as needed to force ClockKit to request the new data from your data source.

无论哪种方式,并发症 Controller 都应该只使用它可用的新数据,而不是尝试(异步地)获取它需要的任何数据。

关于ios - 在 WatchOS2 中使用 NSURLSession 后台任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34747497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com