【发布时间】:2016-08-28 16:52:33
【问题描述】:
在我的应用中,用户可以启动一个跟踪服务,该服务使用 LocationManager 每 X 秒请求一次位置。
一位用户报告说,在他的设备 (Galaxy Tab S2) 上,当设备进入睡眠模式时,跟踪会在几分钟后停止。
我有两个问题:
- 有没有办法让我的设备进入睡眠模式(用于测试)?
- 使用部分唤醒锁会有什么影响?在我的设备上,cpu 似乎并没有进入睡眠状态,所以我想不会有影响,对吗?还是我需要使用 AlarmManager,每 x 秒手动获取一次位置(顺便说一下,这应该是 LocationManager 的一个选项......)?
【问题讨论】:
-
据我所知,位置管理器在请求位置更新时会自行获取唤醒锁,关于位置跟踪停止可能与您的服务因某种原因被 android 系统杀死有关。您是否正确处理服务停止,例如再次启动服务或使用警报管理器在服务被 android 系统杀死时保持服务正常
-
我的服务很粘,我已经看到它被杀死并自动重启。您确定 LocationManager 使用唤醒锁吗?根据我在网上找到的,它没有。
标签: android alarmmanager locationmanager wakelock sleep-mode