我有一个每秒运行一次的计时器。每一秒我都会获取 GPS 位置并做其他事情。 我想知道哪种方式更好:
1- 请求单个位置更新,然后获取最后一个已知位置
private void timeout(){
String data[] =new String[DATA_LENGTH];
locationManager.requestSingleUpdate(LocationManager.GPS_PROVIDER, this, null);
Location loc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
.
.
.
}
2- 启动位置监听器,然后在我的计时器到期时获取最后一个已知位置
OnCreate(){
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
}
private void timeout(){
String data[] =new String[DATA_LENGTH];
Location loc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
.
.
.
}
谢谢
PS:请注意,根据产品要求,我不关心电池
最佳答案
requestSingleUpdate
意味着是单一的,如果你需要经常查询 GPS 你一定要选择选项 2。
在内存中保留一个全局的 Location
对象,在您其他东西中使用它,并在您的监听器从 LocationManager 获得更新时更新它。
关于android - 定期查询 GPS 的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17795562/