【发布时间】:2016-05-04 13:04:52
【问题描述】:
我需要制作一个近乎实时地记录心率数据的应用程序,并尽快将这些数据发送到服务器。
首先我采用了这种方法:Watch os 2.0 beta: access heart beat rate
事实上它运行良好。 HealthKit 中每五秒就会有一个新的心率数据。但是现在我遇到了无法与服务器同步的问题。
我的第一个方法是 Watch 应用。手表正在向服务器发送数据。这不起作用,因为一旦手表上的屏幕变黑,它就会停止发送。
我的下一个方法是每五秒查询一次 iPhone 上的 HealthKit 以获取新数据。只要应用程序在前台,这就是有效的。
然后我看到有某种后台功能可以监视 HealthKit 本身并从后台撤消应用程序,您可以做一些事情。(enableBackgroundDeliveryForType) 这似乎不适用于心率(Apple 文档说明了一些事情就像这不起作用的步骤一样,我猜心率就是其中之一)。
我现在卡住了。你知道怎么做吗?我需要一些在 iPhone 上每 5-10 秒执行一次的后台任务。这似乎是不可能的
【问题讨论】:
-
这不会很快耗尽电池吗?我的意思是每 5 秒左右发送一次数据
-
这只是向服务器发送日期和心率的快速 GET 请求以及网球比赛,因此不会使用那么长时间
-
@user2529173,您认为不会花很长时间,但是拥有数十个此类应用程序的用户将不得不每秒向任意服务器发送 2 个请求,而不能保证低延迟或最佳路由,它们是甚至不能保证活着,并且请求很容易被挂起,直到超时。尝试将后台获取与健康工具包结合使用,系统将决定何时应允许应用程序访问网络,没有明确记录,但我相信间隔将取决于应用程序的使用频率和速度 真的在一般设备状态之上执行。
-
这款应用是为特殊人群设计的,大概会有 10 个人在使用它。所以我不担心那些事情。我尝试了后台提取,但它似乎不能可靠地工作
-
是的,您可以在测量期间执行代码,但 watchOS 不能保证此测量每五秒进行一次。
标签: ios swift watchkit watchos-2 healthkit