3
GpsStatus.Listener
GpsStatus.Listener
一旦您在LocationManager
實例上調用removeUpdates
,就會停止呼叫。我原本有this我修好的問題。我試圖在基於GPS的位置跟蹤和基於網絡的位置跟蹤之間切換。我已經看過this和this。他們談論的大多數地方都是同時向兩個提供商請求位置更新。恐怕這種方法會耗盡電池 bigtime。一旦您呼叫取消註冊位置監聽器,Gps狀態監聽器就會停止工作
因此我做了如下的事情。我有兩個LocationListener
S:gpsListener
和ntListener
:
Listener mGPSListener = new GpsStatus.Listener() {
@Override
public void onGpsStatusChanged(final int event) {
switch (event) {
case GpsStatus.GPS_EVENT_STARTED:
locMgr.removeUpdates(ntListener);
locMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 120000, 50, gpsListener);
break;
case GpsStatus.GPS_EVENT_STOPPED:
locMgr.removeUpdates(gpsListener);
locMgr.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 120000, 50, ntListener);
break;
}
}
};
現在一次,locMgr.removeUpdates
被擊中,onGpsStatusChanged
停止獲取調用。我嘗試了幾個東西,例如在調用removeUpdates
嘗試不同的gps狀態偵聽器等後添加addGpsStatusListener
。尚未成功。難道我做錯了什麼?