我必须在大约一天内使用GPS跟踪器构建应用程序.我在SO中也知道类似的问题,但我没有找到任何问题的答案.
- 我需要每10分钟进行一次GPS修复,所以我认为最好的方法是启动定位服务,获得修复(或超时)并停止服务(带removeUpdates()).如何让应用程序(或服务或其他)每10分钟运行一次这个循环,并确保只要剩余电量就会继续(即使设备进入睡眠状态,它应该每10分钟唤醒一次以获得修复)?使用AlarmManager是个好主意吗?
- 我希望这种方法能让电池持续一天吗?
我已经检查了mytracks,但gps监听器似乎总是打开,电池预计持续不超过5小时.
我还检查了CWAC位置轮询器,但它仅removeUpdates()在超时时执行并立即重新启动侦听器.它也使用唤醒锁,而在我的情况下,我认为AlarmManager可能是一个更好的主意.
任何帮助/建议欢迎
你很适合我使用的警报管理器
Intent serviceIntent = new Intent(this, TrackerService.class);
mPendingIntent = PendingIntent.getService(this, 0, serviceIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.cancel(mPendingIntent);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis(), interval, mPendingIntent);
Run Code Online (Sandbox Code Playgroud)
在类似的应用程序中获取网络位置
启动服务之间的间隔是毫秒
服务启动、获取位置并关闭
这比在活动服务中等待报告的电池效率要高得多
我发布的代码首先取消了之前的警报,这样您就不会收到超过 1 个警报:)
| 归档时间: |
|
| 查看次数: |
6084 次 |
| 最近记录: |