现在正在做的项目一个需求是时刻记录用户GPS位置(在服务器端接收位置,并在地图上绘出运动轨迹),我们的做法是启一个用于监听GPS位置变化的Service,每隔10分钟获取一次位置,如果位移范围在100m以上,向服务器发送一次数据。开发完成后发现一个问题,当手机进入休眠状态时,这个监听GPS的Service似乎就不工作了。经过不断Google和尝试发现,在Android中,申请WakeLock可以让进程持续执行即使手机进入睡眠模式,以下是我的解决方案:
在Service的onCreate()方法中加入以下代码,申请WakeLock:
申请了WakeLock要记得释放,否则手机可能无法进入休眠状态。在onDestroy()方法中加入:
至此,我的问题解决了,不知道能不能解决你的问题?