【问题标题】:WatchKit perform task when app inactiveWatchKit 在应用不活动时执行任务
【发布时间】:2015-09-04 12:57:21
【问题描述】:
我正在为 Apple Watch 创建一个独立的应用程序,每 3000 万次测量一次心率并将其发送到服务器。
我指的是this projet 来提取心率。该项目包含一个通过 HealthKit 提取此度量的类。
我需要做的是让这个任务永久运行,即使应用程序处于非活动状态。并且可以通过我的应用程序中的设置视图禁用它。
所以我的问题是:如何在 Apple Watch 应用程序的后台永久执行任务?
谢谢。
【问题讨论】:
标签:
ios
background-process
watchkit
apple-watch
healthkit
【解决方案1】:
看看他们在documentation说什么:
锻炼课程让应用继续在前台运行。
因此,您的应用可以在应用处于非活动状态时收集心率信息。然后你可以使用workoutSession(_:didChangeToState:fromState:date:)方法,根据date属性将信息分成30分钟的间隔。
如果您的应用程序被挂起,则委托会收到此调用
申请恢复后。这意味着您可能会收到
状态改变后很久才通知。检查日期参数以
确定状态更改实际发生的时间。
最后你可以在应用激活时向服务器发送信息。
更新:
您也可以在workoutSession(_:didChangeToState:fromState:date:) 中调用openParentApplication:reply: 以在后台(在iPhone 上)将统计信息发送到服务器。