我可以使用后台任务每 1 秒处理一次来自服务器的数据吗?

Can I use a background task to process data from a server every 1 sec?

为了更大的利益,我愿意为安装我的应用程序的每台设备投入 1% 的处理能力。后台任务应在您打开应用程序后启动 运行,并在您出于多任务处理目的退出应用程序时继续。

后台任务

  1. 每 1 秒下载少量数据 (<1KB)。
  2. 使用设备处理能力的 1% 来处理它们。
  3. 很少上传少量数据 (<1KB)。

在下面的示例中,我使用了 MySQL,但肯定不会使用 MySQL。

另外,请注意,实际数字最终将在很大程度上优化,这就是 1% 数字的来源。

显然,我不能具体告诉设备使用其处理能力的 1%。

打开应用程序

连接到 MySQL 服务器。

下载数据

它应该每 1 秒读取 MySQL 数据库中一个数据小于 1KB 的单元格。

处理中

需要每 1 秒从设备读取相对大量的数据 (1MB)。

上传数据

很少,它应该在 MySQL 数据库中写入一个数据小于 1KB 的单元格。

关闭应用程序

断开与数据库的连接。

我想,移动设备 excel 是它们的 内存速度 互联网连接

重复读取 MySQL 数据库和设备磁盘是否会影响其性能和电池寿命?

最重要的是,iOS 和 Android 是否允许这种复杂的后台任务?

为此目的使用 services

Documentation

不,iOS不支持这种后台处理(连续执行)

您可以请求 iOS 使用 BGProcessingTaskRequest 安排后台工作。使用此 API 指定任务仅在设备连接到外部电源且网络可用时执行。

这些任务每次调用的持续时间限制为几分钟,虽然您可以请求 "earliest start date",但您不能指定具体的开始时间或执行频率。

Android 允许这些复杂的后台任务,但 iOS 不允许。