无法定期在 IOS 中进行后台 API 调用,以推送应用程序从 BLE 设备接收到的数据
Unable to make Background API call in IOS at regular intervals to push data received in app from a BLE device
我有一个来自 Acaia(外围设备) 的体重秤,它在 5 points/sec 时发出体重数据。我使用 Acaias iOS SDK 制作了一个可以连接到它以接收数据点的应用程序。
即使在 background 状态下,我也想建立连接,因此我在 Capabilities for Bluetooth 中启用了 Background State 模式。现在应用程序使用 NSNotifications.
继续接收数据
Requirement and my work
I have to push this data to our servers for that I am storing the Data
in an array and at every 10 seconds, I am making an API POST call to
push the content available in array to our servers, and then I am
resetting the array.
- 它在应用程序的前台状态下按预期工作。
- 当屏幕锁定或应用程序处于后台状态时,API 日志不规则,这意味着数据不会定期推送。
- 将应用程序从后台转到前台时,假设 30 分钟后,应用程序冻结并且连接断开。
我已阅读 Apple 开发人员指南,其中说如果数据点不断出现,可以在后台永久保持与外围设备的连接。现在我如何确保我不会丢失那些权重数据?是否可以在服务器中推送所有这些,也许是批量 API 调用?
参考:
https://acaia.co/blogs/news/new-ios-sdk-api-release
IOS 可以进行后台处理。但它应该只做它从暂停状态到后台状态的工作。
此外,我发现不断向 IOS 应用程序推送数据的 BLE 外围设备会阻止应用程序进入暂停状态,因此应用程序可能永远处于后台,除非 IOS 尝试为了内存和其他问题而杀死它。
- 有选项可以让应用程序 运行 在后台状态
功能部分。
- 还要确保处理正确的外设委托方法。
- 并且 API 调用是分批进行的。我宁愿保存捕获的数据
在后台和应用程序进入时从本地存储中的 BLE
前台并连接到互联网,将为用户提供选项
推送到服务器。
我有一个来自 Acaia(外围设备) 的体重秤,它在 5 points/sec 时发出体重数据。我使用 Acaias iOS SDK 制作了一个可以连接到它以接收数据点的应用程序。
即使在 background 状态下,我也想建立连接,因此我在 Capabilities for Bluetooth 中启用了 Background State 模式。现在应用程序使用 NSNotifications.
继续接收数据Requirement and my work
I have to push this data to our servers for that I am storing the Data in an array and at every 10 seconds, I am making an API POST call to push the content available in array to our servers, and then I am resetting the array.
- 它在应用程序的前台状态下按预期工作。
- 当屏幕锁定或应用程序处于后台状态时,API 日志不规则,这意味着数据不会定期推送。
- 将应用程序从后台转到前台时,假设 30 分钟后,应用程序冻结并且连接断开。
我已阅读 Apple 开发人员指南,其中说如果数据点不断出现,可以在后台永久保持与外围设备的连接。现在我如何确保我不会丢失那些权重数据?是否可以在服务器中推送所有这些,也许是批量 API 调用?
参考:
https://acaia.co/blogs/news/new-ios-sdk-api-release
IOS 可以进行后台处理。但它应该只做它从暂停状态到后台状态的工作。 此外,我发现不断向 IOS 应用程序推送数据的 BLE 外围设备会阻止应用程序进入暂停状态,因此应用程序可能永远处于后台,除非 IOS 尝试为了内存和其他问题而杀死它。
- 有选项可以让应用程序 运行 在后台状态 功能部分。
- 还要确保处理正确的外设委托方法。
- 并且 API 调用是分批进行的。我宁愿保存捕获的数据 在后台和应用程序进入时从本地存储中的 BLE 前台并连接到互联网,将为用户提供选项 推送到服务器。