首页 > 解决方案 > Android:活动关闭时服务失去传感器焦点

问题描述

我正在制作一个应用程序,其中后台服务在某些特定动作上做一些事情。目前,我使用带有 SensorEventListener 的简单服务来注册手机的移动并执行我希望它执行的操作。我还使用没有任何时间限制的(可选)唤醒锁(但在服务终止时它会被取消连接)以确保服务始终可访问。我使用 START_REDELIVER_INTENT 确保在用户停止活动时重新启动(通常通过 ome 按钮)。现在我的问题是:当我停止活动时,服务会终止,但有时只会重新启动(我不知道它是否没有重新启动或者只是没有调用它的传感器。我怀疑最后但我不确定,因为我只放置了一个Sensorchanged 方法中的简单 Sysout 进行测试)。

是否有更好、更有效的方法来实现我的目标(例如 startForeground),我如何确保在活动停止后持续获取传感器数据?

标签: androidservicemotion-detection

解决方案


需要连续运行的服务必须以startForeground().

这样做的一个积极的副作用是,用户会意识到您的应用程序正在使用传感器,并且可以在电池电量不足时停止它。


推荐阅读