7

据说运行 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())
            }
4

1 回答 1

2

我们也看到了这一点,目前我们已经确保配置了“打开最后一个活动”。

当 UI 处于活动状态时,我们启动一个 dispatch_timer 以 1 秒的间隔请求和处理数据。

确保您使用 NSUserProcessInfo 方法进行任何重要的处理,并在您不再处于活动状态时暂停 dispatch_timers。否则你会崩溃。

于 2015-07-06T10:45:31.513 回答