希望这个问题听起来不会太傻,但我还没有找到解决方案。我目前正在使用与 HealthKit 集成的 Xamarin 编写应用程序。存储在 HK 中的数据会定期同步到服务器。这是通过提取食物相关性的 HKAnchoredObjectQuery 完成的。
由于数据是定期提取的,因此存在同步之间的情况,用户可能会删除 HealthKit 中的值。该删除需要在下一次同步时传播回服务器。
我最初的想法是使用观察者查询来做到这一点。
我的问题是:使用 HealthKit 的观察者查询,有没有办法确定触发查询的操作是否是删除操作?
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);
}