在HealthKit中,您可以创建一个HKObserverQuery,执行它,然后启用EnableBackgroundDeliveryForType。
let backgroundQuery:HKObserverQuery = HKObserverQuery(sampleType: quantityType, predicate: nil) { (query, complete, error) -> Void in
}
self.healthKitStore.executeQuery(backgroundQuery)
self.healthKitStore.enableBackgroundDeliveryForType(
quantityType,
frequency: .Immediate,
withCompletion: { (success, error) -> Void in
if !success {
println(error)
}
})
我想知道我是否会调用disableBackgroundDeliveryForType它会禁用已注册的HKObserverQuery还是会删除它?
答案 0 :(得分:5)
禁用后台传递不会停止观察者查询。它只会阻止您的应用在后台恢复以获取有关新样本的信息。当您的应用程序位于前台时,当有新数据时,您的观察者查询updateHandler
将继续执行。您必须致电HKHealthStore.stopQuery(backgroundQuery)
以停止它。