我正在创建一个应用程序,其中后台服务在某些特定动作上执行某些操作。目前,我使用附带SensorEventListener的简单服务来注册手机的移动并执行我希望它执行的操作。我还使用(可选的)wakelock没有任何时间限制(但是当服务终止时它会被取消)以确保服务始终可访问。我使用START_REDELIVER_INTENT来确保当用户停止它时活动停止(通过ome按钮定期)。 现在我的问题:当我停止活动时,服务终止,但有时只重新启动(我不知道它是否重新启动或只是没有调用它的传感器。我怀疑最后但我不确定因为我只放了一个用于测试的Sensorchanged方法中的简单Sysout。
是否有更好,更有效的方法来实现我的目标(例如startForeground)以及如何确保在活动停止后不断获取sensordata?
答案 0 :(得分:0)
需要连续运行的服务必须以startForeground()
开始。
这样做的一个积极的副作用是用户会使用传感器知道你的应用程序,并且如果他的电池电量不足就可以停止它。
答案 1 :(得分:0)
请看这篇文章 Background Execution Limits 根据您的要求,您需要使用前台服务,您需要在其中通知用户您正在执行该任务。