Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios HKObserverQueryCompletionHandler超时?_Ios_Objective C_Healthkit_Hkobserverquery - Fatal编程技术网

Ios HKObserverQueryCompletionHandler超时?

Ios HKObserverQueryCompletionHandler超时?,ios,objective-c,healthkit,hkobserverquery,Ios,Objective C,Healthkit,Hkobserverquery,我在iOS应用程序中使用和。在HKObserverQuery的updateHandler中,我执行一个查询()并通过https将结果发送到远程服务器。但在慢速连接(例如EDGE)和大量数据(例如步骤)的情况下,数据发送可能需要长达一分钟的时间 从到HKObserverQueryCompletionHandler的: 当HealthKit唤醒你的应用程序时,它会调用与新数据匹配的任何观察者查询的更新处理程序。此块被传递给更新处理程序。处理完传入数据后,必须立即调用此块。调用此块告诉HealthKi

我在iOS应用程序中使用和。在HKObserverQuery的updateHandler中,我执行一个查询()并通过https将结果发送到远程服务器。但在慢速连接(例如EDGE)和大量数据(例如步骤)的情况下,数据发送可能需要长达一分钟的时间

从到HKObserverQueryCompletionHandler的:

当HealthKit唤醒你的应用程序时,它会调用与新数据匹配的任何观察者查询的更新处理程序。此块被传递给更新处理程序。处理完传入数据后,必须立即调用此块。调用此块告诉HealthKit您已成功接收背景数据。如果您不调用此块,HealthKit将继续尝试使用后退算法启动您的应用程序。如果您的应用程序三次响应失败,HealthKit会假定您的应用程序无法接收数据,并停止向您发送背景更新

所以我的问题是:在我的应用程序被HealthKit认定为“挂起”之前,我需要打多少电话?
或者我应该立即调用https请求吗?

您肯定应该启动一个单独的后台任务来执行到服务器的数据传输,并尽快调用
HKObserverQueryCompletionHandler
。文档中没有说明在调用处理程序之前可以等待多长时间,因此最安全的做法是尽快调用它

我发布了一个类似的问题,关于
HKObserverQueryCompletionHandler
的使用混乱,但没有任何更新