1
這裏是我的代碼片段:Android:如何超時GPS試圖找到一個鎖?
private class NoGpsLock implements Runnable {
public void run() {
if (gps == null) {
Toast toast = Toast.makeText(getApplicationContext(), "Unable to find GPS lock", Toast.LENGTH_LONG);
toast.show();
if (locManager != null) {
locManager.removeUpdates(locListener);
}
}
}
}
調用由
try {
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME, MIN_DIST, locListener);
} catch (Exception ex) {
}
Handler gpsHandler = new Handler();
gpsHandler.postDelayed(new NoGpsLock(), 15000); //15seconds
據我瞭解,removeUpdates()
應該停止接收更新的GPS。我在模擬器和2個設備上嘗試了這一點;在模擬器上,它確實會阻止應用程序接收更多位置更改。然而,在實際的設備上,「從GPS接收位置數據」圖標不斷出現並耗盡電池(我認爲這表明應用程序/手機一直在尋找位置並且無法進入,因爲我在室內) 。如何阻止GPS試圖找到一個位置?
編輯:我希望我的應用在一段時間後停止嘗試查找位置,然後可能稍後再重新啓動GPS。
你真的很棒!我有兩個不同的聽衆,但我只使用一個。謝謝! – dee 2012-02-27 18:44:17