【发布时间】:2015-07-04 19:52:11
【问题描述】:
据说运行 HKWorkoutSession 的应用程序将比其他 watchOS 2 应用程序具有特殊权限,因此当用户查看他们的 Apple Watch 时,它将转到显示正在运行锻炼的视图而不是表盘。
目前,在我的设备和模拟器上,情况并非如此。如果我启动 HKWorkoutSession,然后离开 5 分钟,然后与 Apple Watch 或 Watch Simulator 交互,它会显示表盘。
如果我随后打开我的应用程序,它似乎已被冻结,而不是终止(我想象其他应用程序会发生这种情况)。因为当我需要在我的 query.updateHandler 中接收响应时,UI 会更新。此外,如果我将其设置为每次我的 query.updateHandler 收到新的 HKQuantitySample 时提供触觉反馈,它会这样做,因此应用程序必须以某种形式在后台运行。
有没有其他人注意到这种行为,我是否做错了什么,或者期待一些我不应该做的事情?
这是我开始 HKWorkoutSession 的方式:
self.workoutSession = HKWorkoutSession(activityType: HKWorkoutActivityType.Other, locationType: HKWorkoutSessionLocationType.Indoor)
self.healthStore.startWorkoutSession(self.workoutSession) {
success, error in
if error != nil {
print("startWorkoutSession \(error)\n")
self.printLabel.setText("startWorkoutSession \(error)")
self.printLabel.setTextColor(UIColor.redColor())
}
【问题讨论】:
-
经过进一步调查,我决定我的代码继续在后台运行,并且我应该有代码来更新 willActivate 上的 UI,而不是等待新的查询。我会保持这个开放的时间更长一些,因为对于为什么应用程序不保持在前台没有明确的答案。
-
您是否尝试过更改 AppleWatch 上在抬腕时打开上次活动的设置?在 IOS General 上的 AppleWatch 应用程序中。如果这对您的用户至关重要,您可以提示他们更改设置
-
是的,如果这个“错误”最终成为默认行为,那是一个不错的主意。理想情况下,虽然我不想强迫用户仅为我的应用更改他们的 Apple Watch“工作流程”。
标签: watchkit apple-watch healthkit watchos-2