我有一个后台服务,由timer.scheduleAtFixedRate
定期运作。
它会唤醒每一段时间(例如60秒)并检查位置。
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 5, listener);
检查位置,并从听众onLocationChanged
收集实际位置。
现在,当手机在外面并且GPS接收良好时,这样可以正常工作。 但是,如果手机在里面,GPS几乎总是有效 - 寻找信号,电池快速耗尽。
我使用Handler和Runnable创建了另一个线程,以便准确地控制GPS活动时间:
我使用了locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener);
和locManager.removeUpdates(listener);
,因此我可以根据需要打开和关闭GPS。
在这种情况下,我可以打开GPS一段时间,但发现即使10秒后它也没有锁定在接收良好的区域。所以我在这里再次耗尽电池......
我正在使用API级别7,因此我无法使用locationManager.requestSingleUpdate
。
我有两个问题:
locationManager.requestSingleUpdate
)会显着改善流程吗?我的意思是,值得升级吗?答案 0 :(得分:0)
NETWORK_PROVIDER如何解释here? 你可以有一个系统,如果你在有限的时间内找不到位置,这意味着你在里面或GPS接收不够好,你可以使用网络位置。由于使用较少的电池,它至少是一种解决方法或替代方案。但是这种情况会更低。