【问题标题】:MyLocationOverlay disableMyLocation() not seeming to workMyLocationOverlay disableMyLocation() 似乎不起作用
【发布时间】:2011-09-24 20:20:15
【问题描述】:

刚刚浪费了 3 个小时试图弄清楚为什么当我的地图活动暂停时 GPS 图标仍显示在通知栏中。我已将其范围缩小到与我正在使用的 MyLocationOverlay 对象有关(我还有一个 LocationListener 和一个 GpsStatus.Listener)。

@Override
protected void onPause() { 
super.onPause();
manager.removeUpdates(locListener);
manager.removeGpsStatusListener(statListener);    

myLocOverlay.disableMyLocation(); //!doesn't seem to work
myLocOverlay.disableCompass();    
}

如果有人知道为什么会发生这种情况,请帮忙,这样我就不会把头发都拔光了。我无法发布我的应用,因为这样的电池耗尽问题。

【问题讨论】:

  • 如果解决了,请回答您自己的问题并将其标记为正确的解决方案。

标签: android gps onpause mylocationoverlay


【解决方案1】:

问题在于我对 MyLocationOverlay 对象的初始化。错误代码:

private void initMyLocation() {
   myLocOverlay = new MyLocationOverlay(this, mapView); //THIS SHOULD NOT BE HERE.      
   myLocOverlay.enableMyLocation();
   myLocOverlay.enableCompass();
   mapView.getOverlays().add(myLocOverlay);
}

我的 initMyLocation() 函数在我的代码中被多次调用。调用此行: myLocOverlay = new MyLocationOverlay(this, mapView);多次创建多个无法使用 disableMyLocation() 禁用的侦听器(我认为...)。

无论如何,我将 MyLocationOverlay 初始化移至 onCreate(),现在它可以工作了。

【讨论】:

  • 感谢分享!我花了一段时间才搜索这个问题。 :)
猜你喜欢
  • 2016-11-29
  • 2016-02-01
  • 2020-09-23
  • 2010-12-05
  • 2011-06-14
  • 2015-01-10
  • 2016-02-24
  • 2011-01-18
  • 2018-06-20
相关资源
最近更新 更多