有人说,运行HKWorkoutSession的应用程序将拥有超过其他watchOS 2应用程序的特权,因此当用户查看Apple Watch时,它将转到显示运行锻炼的视图而不是表盘。< / p>
目前,在我的设备和模拟器上,情况并非如此。如果我开始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())
}
答案 0 :(得分:2)
我们也看到了这一点,目前我们确保打开最后一项活动&#39;已配置。
当UI处于活动状态时,我们启动dispatch_timer以1秒的间隔请求和处理数据。
确保使用NSUserProcessInfo方法执行任何重要处理,并在不再处于活动状态时暂停dispatch_timers。否则你会崩溃。