HKWorkoutSession 没有将应用程序放在 Apple Watch 前面
HKWorkoutSession isn't keeping app at front of Apple Watch
据说 HKWorkoutSession 应用程序 运行 将比其他 watchOS 2 应用程序具有特殊权限,因此当用户查看他们的 Apple Watch 时,它会转到显示 运行 锻炼而不是表盘。
目前,在我的设备和模拟器上,情况并非如此。如果我启动 HKWorkoutSession 然后离开 5 分钟,然后与 Apple Watch 或 Watch Simulator 交互,它会显示表盘。
如果我随后打开我的应用程序,它似乎已被冻结,而不是被终止(这是我想象的其他应用程序会发生的情况)。因为 UI 会在我需要在 query.updateHandler 中收到回复时更新。此外,如果我将其设置为在每次我的 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())
}
我们也看到了,目前我们已确保 'opens last activity' 已配置。
当 UI 处于活动状态时,我们启动 dispatch_timer 以 1 秒为间隔请求和处理数据。
请确保使用 NSUserProcessInfo 方法进行任何重要处理,并在您不再活动时暂停 dispatch_timers。否则你会崩溃。
据说 HKWorkoutSession 应用程序 运行 将比其他 watchOS 2 应用程序具有特殊权限,因此当用户查看他们的 Apple Watch 时,它会转到显示 运行 锻炼而不是表盘。
目前,在我的设备和模拟器上,情况并非如此。如果我启动 HKWorkoutSession 然后离开 5 分钟,然后与 Apple Watch 或 Watch Simulator 交互,它会显示表盘。
如果我随后打开我的应用程序,它似乎已被冻结,而不是被终止(这是我想象的其他应用程序会发生的情况)。因为 UI 会在我需要在 query.updateHandler 中收到回复时更新。此外,如果我将其设置为在每次我的 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())
}
我们也看到了,目前我们已确保 'opens last activity' 已配置。
当 UI 处于活动状态时,我们启动 dispatch_timer 以 1 秒为间隔请求和处理数据。
请确保使用 NSUserProcessInfo 方法进行任何重要处理,并在您不再活动时暂停 dispatch_timers。否则你会崩溃。