ios - disableBackgroundDeliveryForType 是否删除对应的 HKObserverQuery?

标签 ios swift healthkit hkhealthstore

在 HealthKit 中,您创建一个 HKObserverQuery,执行它,然后启用 BackgroundDeliveryForType。

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 还是会同时删除它?

最佳答案

禁用后台传送不会停止观察者查询。它只会阻止您的应用程序在后台恢复以了解有关新示例的信息。当您的应用程序位于前台时,您的观察者查询的 updateHandler 将在有新数据时继续执行。您必须调用 HKHealthStore.stopQuery(backgroundQuery) 来停止它。

关于ios - disableBackgroundDeliveryForType 是否删除对应的 HKObserverQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30544491/

相关文章:

ios - 使 Mapbox RMAnnotation 以编程方式显示其标注

ios - swift 3 : Dismiss popup ViewController

ios - 如何在定义的时间间隔内每天从 HealthKit 数据中获取最新的体重条目

ios - 有没有办法用健康包读取Apple Watch运动数据?

ios - 调用 popViewController Animated : 时如何更改父 View 中的内容

iphone - 国际化已创建的 iPhone 应用程序的最佳策略?

xcode - 在 swift 中循环零填充数字 - Xcode

Swift 在设置异常中保存自定义类 : 'NSInvalidArgumentException' , 原因:'*** -length only defined for abstract class

swift - 将所有 HTTP 重定向到 HTTPS,无需 ELB

ios - 如何删除根据重量结果生成的文本?