首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用locationManager (全球定位系统和网络提供商)只读取位置一次,而不再寻找位置更新?

如何使用locationManager (全球定位系统和网络提供商)只读取位置一次,而不再寻找位置更新?
EN

Stack Overflow用户
提问于 2011-11-02 19:00:39
回答 7查看 41.6K关注 0票数 25

如何使用locationManager (全球定位系统和网络提供商)只读取位置一次,而不再寻找位置更新,以节省电池?

EN

回答 7

Stack Overflow用户

发布于 2011-11-02 20:58:48

尽管requestSingleUpdate()在技术上是正确的答案,但您应该使用

代码语言:javascript
复制
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, mLocationListener);

在获得第一个位置后,请等待一段时间。该位置往往会摆动几秒钟。要确定修复是否稳定使用,请使用location.getAccuracy()。一旦精度稳定下来,就调用locationManager.removeUpdates(mLocationListener);

票数 33
EN

Stack Overflow用户

发布于 2011-11-02 19:05:52

只需从位置管理器中删除更新即可。

代码语言:javascript
复制
locationManager.removeUpdates(this);
票数 6
EN

Stack Overflow用户

发布于 2016-01-06 14:09:41

代码语言:javascript
复制
public LocationManager locationManager;

try { 
 locationManager.requestSingleUpdate( LocationManager.GPS_PROVIDER, new MyLocationListenerGPS(), null );  
} catch ( SecurityException e ) { e.printStackTrace(); }

public class MyLocationListenerGPS implements LocationListener {
 @Override
 public void onLocationChanged(Location location) {
 // your code and required methods go here...
}

在“requestSingleUpdate”中使用“null”可以在同一线程上保持更新检查(用于服务)。这个方法允许你把它放在一个循环中,如果你从一个活动中运行它。我认为使用异步任务将是更好的方法。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7979230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档