加速计传感器导致损失进入服务

cpa*_*ano 12 service android accelerometer wear-os

我正在为Android Wear开发一个应用程序.它从加速计传感器监听坐标并找到模式.

为此,当用户单击按钮时,服务将启动并开始在List中存储坐标.通常,加速计传感器每秒记录4到5个坐标.

问题是有时onSensorChanged()方法在几秒钟内不会接收数据,从而导致数据丢失和查找模式的麻烦.

以下是我的服务要点:https://gist.github.com/cpalosrejano/8f0e59e47124275136fc3d5d941faa07

我试过的事情:

  • 我使用android:stopWithTask = false来阻止服务在活动终止时停止.
  • 我还使用了一个WakeLock来防止设备在服务记录坐标时进入睡眠状态.

我究竟做错了什么?还有另一种方法可以从加速计传感器接收回调而不会导致数据丢失吗?

提前致谢.

cpa*_*ano 1

虽然有点晚了,但我终于找到了解决方案。

我在前台启动服务,方法startForeground(int, Notification)是使服务永远不会停止。通过此修复,您将永远不会丢失任何 SensorEvent。