android - 定期查询 GPS 的更好方法

标签 android gps

我有一个每秒运行一次的计时器。每一秒我都会获取 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/

相关文章:

android - Firebase 区间组合查询

java - 有没有办法在 WebView 应用程序中创建还原点?

android - libgdx:请求 GPS 地理定位?

ios - View Controller 之间的一类实例化快速共享

javascript - 是否可以根据坐标检查城市

android - 如何创建自定义评分栏

android - TabHost 颜色在 Android 版本之间发生了变化

Android Studio SDK 安装程序在解压缩 'platform-tools/systrace/NOTICE' 时无限期挂起

iphone - 使用 ROOT 权限获取 GPS,无需警报 View (越狱)

java - 如何确定 GPS 坐标是否位于矩形区域内?