2011-06-29 85 views
4

只是浪費了3個小時試圖弄清楚爲什麼當我的地圖活動暫停時,GPS圖標仍然出現在通知欄中。我縮小了它與我正在使用的MyLocationOverlay對象(我也有一個LocationListener和一個GpsStatus.Listener)。MyLocationOverlay disableMyLocation()看起來沒有工作

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

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

如果任何人有爲什麼發生這種情況,請幫助,所以我不扯我的頭髮出任何主意。我不能用這樣的電池耗盡問題來釋放我的應用程序。

+0

如果解決了這個問題,請回答您自己的問題並將其標記爲正確的解決方案。 – CrackerJack9

回答

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(),現在它工作。

+1

感謝分享!我花了一段時間來尋找這個問題。 :) –

相關問題