В HealthKit вы создаете HKObserverQuery, выполните его, а затем включитеBackgroundDeliveryForType.Does disableBackgroundDeliveryForType удалить соответствующий HKObserverQuery?
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 или он будет также удалить его?
Аллан, какова продолжительность жизни HKObserverQuery? Когда его следует остановить и воссоздать? – julio
Срок службы до тех пор, пока вы этого хотите. После его запуска он запускается до тех пор, пока вы явно не остановите его или ваше приложение не выйдет. Вы должны явно останавливать его, когда вам больше не нужны обновления, которые он предоставляет. – Allan
Спасибо, что хорошо знать, еще один вопрос: поэтому, когда мое приложение запускается при доставке фона после его завершения, и я воссоздаю свой запрос наблюдателя в applicationDidFinishLaunchingWithOptions. Любые идеи о том, почему после того, как пользователь снова откроет приложение вручную, updateHandler получает количество раз, подобное количеству раз, когда мое приложение было запущено в фоновом режиме? – julio