我在我的代码中使用这一行:
locationmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER,20000,1,listener);
这适用于Jellybean设备及更高版本。我开始使用一个线程每20秒启动一次更新。这种方式对GPS有任何影响,因为它会一直打开和关闭它吗?
new Thread(new Runnable(){
public void run() {
locationmanager.removeUpdates(listener);
try {
Thread.sleep(20000);
} catch (InterruptedException e) {
}
if(enapled)
runOnUiThread(new Runnable() {
public void run() {
locationmanager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 1, listener);
}
});
}
}).start();
这个应用程序设计运行了很长时间,我担心让位置管理员一直运行。在一段时间过后,删除监听器并再次请求位置是否安全?如果没有,有没有其他方法来处理这个?
答案 0 :(得分:0)
将其注册是安全的,如果将其留在那里或者反复注册它对电池没有影响。
根据我的经验,多次注册到位置经理随着时间的推移会遇到很多问题,
如果最后收到的位置是在最后一分钟左右收到的,那么我要做的就是检查每隔几分钟。如果没有,请再次注册听众
顺便问一下,这么长时间你需要GPS什么?
查看其他位置提供商,他们可能只是采用较低的电池使用率来解决问题
Location Strategies