问题标签 [wkrefreshbackgroundtask]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
238 浏览

watchkit - watchOS上CloudKit的WKRefreshBackgroundTask?

因此,在 watchOS 上,我知道您可以安排(和重新安排)aWKRefreshBackgroundTask在后台为您工作。这对我的应用程序来说非常有用,可以确保 watchOS 上的数据是最新的 - 特别是因为它没有像 iOS 和 macOS 这样接收更新。

除了,我的数据使用 CloudKit 来存储用户的数据。

我想使用类似URLSession场景的东西,您可以在其中安排WKApplicationRefreshBackgroundTask创建后台URLSession任务并将其交给系统的地方。系统反过来会为WKURLSessionRefreshBackgroundTask您提供检查数据是否完成的位置URLSession(通过检查下载的数据是否存在)。

我的问题是,你如何用 CloudKit 做这样的事情?

我可以在 中下载我的用户数据WKApplicationRefreshBackgroundTask,但我认为我不能保证它会在系统提供给我的应用程序的时间内完成。这就是为什么(似乎)Apple 建议您将其拆分为两个后台任务:

  1. WKApplicationRefreshBackgroundTask- 创建URLSession并将其交给系统。
  2. WKURLSessionRefreshBackgroundTask- 对从步骤 1 下载的数据采取行动。

我不确定你可以用 CloudKit 做到这一点吗?或者,至少我似乎找不到类似的东西。

0 投票
0 回答
112 浏览

swift - WatchOS 应用程序因显示详细信息而崩溃 [WKRefreshBackgroundTask dealloc]

我知道这个崩溃与后台更新复杂性有关,系统自动释放对象可能是由于挂起状态。所以这里详细介绍了我在 watchOS 应用程序中尝试做的事情。

我正在后台更新并发症内容。此更新的详细信息是从服务器接收的。所以我应该启用任何后台模式吗?

提供背景模式音频、位置、远程通知和锻炼

但上述模式不符合我的要求,因为没有使用上述任何服务,只是从服务器更新复杂数据。

我使用 scheduleBackgroundRefresh 每 15 分钟更新一次并发症。

这是崩溃日志