我在Android中使用LocationListener掙扎了一下。我想製作一個能夠獲取當前GPS位置的應用程序,然後再進行長時間的睡眠。一天或更多。在這段時間內,我希望GPS通知圖標不顯示。LocationListener正在休眠時關閉GPS圖標
我現在有什麼,是在onLocationChanged一個Thread.sleep(x),但這會保持圖標在休眠期。我如何做到這一點,是否有比使用Thread.sleep更好的方法?
在此先感謝
我在Android中使用LocationListener掙扎了一下。我想製作一個能夠獲取當前GPS位置的應用程序,然後再進行長時間的睡眠。一天或更多。在這段時間內,我希望GPS通知圖標不顯示。LocationListener正在休眠時關閉GPS圖標
我現在有什麼,是在onLocationChanged一個Thread.sleep(x),但這會保持圖標在休眠期。我如何做到這一點,是否有比使用Thread.sleep更好的方法?
在此先感謝
您必須完全關閉LocationManager。我在我的應用程序中執行了此操作,因爲我每10秒鐘只檢查一次位置,因爲我發現,關閉比存儲位置管理器的min_distance或min_time節省了更多的電量。
喜歡的東西:
// Turning off
mLocationManager.removeUpdates(gpsListener);
mLocationManager = null;
// Turning on again
mLocationManager = (LocationManager) getApplicationContext().getSystemService(Context.LOCATION_SERVICE);
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, GPS_MINTIME, GPS_MINDISTANCE, gpsListener);
的圖標會消失,直到的LocationManager再次開啓。
如果你有疊加,認爲對他們關閉的位置太:
@Override
protected void onResume()
{
Log.i("ProjetTEA", "onResumeMain");
if (mLocationListener != null)
{
mLocationOverlay.enableMyLocation();
mLocationManager = (LocationManager) getApplicationContext().getSystemService(LOCATION_SERVICE);
mLocationManager.requestLocationUpdates(mBestProvider, 10000, 2, mLocationListener);
}
super.onResume();
}
@Override
protected void onPause()
{
Log.i("ProjetTEA", "onPauseMain");
mLocationOverlay.disableMyLocation();
mLocationManager.removeUpdates(mLocationListener);
mLocationManager = null;
super.onPause();
}
嘿Fluffball 是啊,我終於找到它了,做了它正是你描述的方式。我還了解到Thread.sleep很糟糕。閱讀Handler類以及如何延遲任務。事實證明這很糟糕,因爲我結束了遞歸函數。由於我有一個可變的延遲,我不能使用repeat-method。 我終於堅持與報警管理器,它的作品就像一個魅力。 感謝您的回覆:) – Andreas 2010-07-31 11:39:06