MyLocationOverlay disableMyLocation()似乎不起作用

时间:2011-06-29 04:56:57

标签: android gps onpause mylocationoverlay

当我的地图活动暂停时,只是浪费了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();    
}

如果有人知道为什么会这样,请帮忙,所以我不会把头发拉出来。我不能用这样的电池耗尽问题发布我的应用程序。

1 个答案:

答案 0 :(得分:2)

问题出在我的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(),现在它可以正常工作。