Android 中每个传感器一项服务?

One service per sensor in Android?

我正在实施一个 Android 7 应用程序,用于从智能手机收集传感器数据(如加速度、陀螺仪等)。目前我有一个后台服务,它收集所有传感器数据(对每种传感器类型使用 registerListeneronSensorChanged)并将它们存储在 SQLite 数据库中(每个传感器一个 table)。

这是正确的方法还是我应该为每个传感器创建一项服务?尤其是当每个传感器的采样率为 50 Hz 时,我不知道一项服务是否足够。

Is this the right way to do it

关于服务数量,是的。您可能还有其他问题,例如 not having background access to sensors on Android 9.0+.

should I create one service for each sensor?

没有

Especially when I have sampling rates of say 50 Hz for each sensor, I don't know if one service is enough.

拥有更多服务不会影响您处理 50Hz 采样率的能力。这就是拥有合适的线程模型的问题,以便在后台线程(或来自小型线程池的线程)上执行对这些样本的任何重要工作。