首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用completionHandler后HKObserverQuery后台投递停止工作

调用completionHandler后HKObserverQuery后台投递停止工作
EN

Stack Overflow用户
提问于 2017-10-10 22:26:46
回答 1查看 661关注 0票数 0

所以根据苹果的说法,我需要在updateHandler被添加到HK的数据触发后调用HKObserverQueryCompletionHandler

但是只要我调用completionHandler,观察者查询就会停止在后台进行任何更新。

下面是我的代码:

代码语言:javascript
复制
guard let sampleType = sample as? HKQuantityType else { return nil }

let query = HKObserverQuery(sampleType: sampleType, predicate: nil, updateHandler: { query, completionHandler, error in

    completionHandler()

    IamExecutingHKStatisticsCollectionQueryHere()
})

healthStore?.execute(query)
healthStore?.enableBackgroundDelivery(for: sampleType, frequency: .hourly, withCompletion: { success, error in

})

如果我不调用completionHandler,一切正常,但是我很长一段时间都没有测试过。

EN

回答 1

Stack Overflow用户

发布于 2017-10-11 10:46:51

调用completionHandler()表明您已经完成了对新数据的处理。只有在处理了为响应updateHandler调用而执行的查询的结果之后,才调用它。如果你像现在这样提早调用completionHandler(),系统将在你有机会处理数据之前停止在后台运行你的应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46669260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档