我几天前发布了Setting up HKObserverQuery using Swift。
我还想知道,是否有一种方法可以获得刚刚使用HKObserverQuery添加到HealthKit中的最新数据点的值,或者它只是让您知道添加了一个新数据点,但您仍然需要使用HKSampleQuery再次查询它以检索值。
发布于 2016-08-30 03:44:59
HKObserverQuery主要通知样本类型是否已更新。为了获取数据,您必须在更新处理程序块或闭包中编写各自的查询(如HKSampleQuery或HKAnchoredObjectQuery)。您应该注意的一件事是提供给observerquery的谓词,因为它定义了观察更改的时间。结束日期必须是将来的日期,以便如果通知它的任何数据中有更改,它将定义您的观察者将持续观察更改的时间。如果您想要最新的样本,请尝试使用HKAnchoredObjectQuery。回顾一下HKObserverQuery的定义。尽量不要将结束日期设置为超过一天或两天。希望这能有所帮助。谓词部分很重要,与示例查询中的谓词略有不同。如果要启用后台更新,请确保调用ObserverQueryCompletionHandler。
发布于 2015-03-27 18:31:19
我正在寻找同样的答案,找到了另一个帖子:Observing changes in HealthKit data using HKObserverQuery
每次获得更新时,您似乎都会执行单独的查询
https://stackoverflow.com/questions/28127804
复制相似问题