HKWorkoutSession并未将应用程序保留在Apple Watch前面

Wil*_*son 6 healthkit apple-watch watchkit watchos-2

已经声明,运行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())
            }
Run Code Online (Sandbox Code Playgroud)

ear*_*dly 2

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

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

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