希望这个问题听起来不太傻,但我还没能找到解决方案。我目前正在使用与HealthKit集成的Xamarin编写应用程序。存储在HK中的数据会定期同步到服务器。这是通过HKAnchoredObjectQuery完成的,它可以提取食物相关性。
由于定期提取数据,因此在同步之间,用户可能会删除HealthKit中的值。该删除需要在下次同步时传播回服务器。
我最初的想法是使用观察者查询来执行此操作。
我的问题是:对HealthKit使用Observer查询,是否有办法确定触发查询的操作是否为删除操作?
public void CheckForDelete (Subject subject)
{
var sampleType = HKObjectType.GetCorrelationType (HKCorrelationTypeKey.IdentifierFood);
var predicate = HKQuery.GetPredicateForSamples (NSDate.DistantPast, NSDate.Now, HKQueryOptions.None);
var observerQuery = new HKObserverQuery (sampleType, predicate, (query, completion, error ) => {
//...Determine if action was a Delete
//Code to delete on backend
completion();
});
HealthKitStore.ExecuteQuery (observerQuery);
}
答案 0 :(得分:1)
在iOS 9中,HKAnchoredObjectQuery
已被修改为报告已删除的对象。