我必须构建一个应用程序,其中 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);
在类似的应用程序中获取网络位置
启动服务之间的间隔是毫秒
服务启动、获取位置并关闭
这比在活动服务中等待报告的电池效率要高得多
我发布的代码首先取消了之前的警报,这样您就不会收到超过 1 个警报:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)