7

我正在开发位置跟踪应用程序。但是我通过做两件事来停止获取位置更新......

  1. locationManager.removeUpdates(this); 和
  2. 将 locationManager 引用设置为 null。

这将停止获取我想要的位置坐标......

但问题是 gps 图标仍在闪烁......这会耗尽设备的电池。

所以请帮助我停止这个 GPS 修复......

4

3 回答 3

11

如果您在 mapView 中显示您的位置和/或指南针,您必须禁用它们。如果您不这样做,则 GPS 仍处于活动状态。

前任 :

private MapView mapView;
private MyLocationOverlay Location;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.frame_layout);

    mapView = (MapView) this.findViewById(R.id.mapView);
    Location = new MyLocationOverlay(this, mapView);
    Location.enableMyLocation();
    Location.enableCompass();
    mapView.getOverlays().add(Location);
}

@Override
public void onDestroy() {
    Location.disableMyLocation();
    Location.disableCompass();
}
于 2012-05-11T12:49:50.073 回答
3

除了上面的答案,在您描述的情况下,我建议您仔细检查您项目中使用的第三方库,尤其是一些分析库。

在我意识到 GPS 图标是由错误安装的 Flurry 引起的(FlurryAgent.setReportLocation(true)已设置onEndSession()但未调用onStop())之前,我非常头疼。

于 2014-04-15T10:28:16.310 回答
2

如果您在模拟器上进行测试,这是完全正常的行为。状态栏中的 GPS 图标永远不会消失。

如果你在硬件上测试这个,要么你已经调用requestLocationUpdates()了不止一次(并且没有删除其他更新),或者硬件上的其他东西正在使用 GPS。

于 2012-04-13T14:04:38.827 回答