0

几天前,我发布了使用 Swift 设置 HKObserverQuery

我还想知道,是否有办法使用 HKObserverQuery 获取刚刚添加到 HealthKit 中的最新数据点的值,或者它只是让您知道添加了一个新数据点,但您仍然有使用 HKSampleQuery 再次查询它以检索值。

4

2 回答 2

1

HKObserverQuery 主要通知样本类型是否已更新。要获取数据,您必须在更新处理程序块或闭包中编写各自的查询(如 HKSampleQuery 或 HKAnchoredObjectQuery)。您应该注意的一件事是提供给观察者查询的谓词,因为它定义了观察更改的时间。结束日期必须是未来的,以便如果通知的任何数据发生变化,它会定义观察者将持续观察变化的时间。如果您想要最新示例,请尝试使用 HKAnchoredObjectQuery。浏览 HKObserverQuery 的定义。尽量不要将结束日期设置为超过一两天。希望这可以帮助。谓词部分很重要,并且与示例查询的谓词有点不同。

于 2016-08-29T19:44:58.557 回答
0

我一直在寻找相同的答案并发现了另一个帖子: Observing changes in HealthKit data using HKObserverQuery

每次获得更新时,您似乎都会进行单独的查询

于 2015-03-27T10:31:19.103 回答