Выключите значок GPS, когда LocationListener спит - PullRequest
5 голосов
/ 26 июля 2010

Я немного борюсь с LocationListener в Android.Я хочу сделать приложение, которое получит текущее местоположение GPS, а затем долго будет спать.День или больше.В этот период времени я хочу, чтобы значок уведомления GPS не отображался.

То, что у меня сейчас есть, находится в onLocationChanged a Thread.sleep (x), но это будет держать значок в период ожидания.Как я могу это сделать, и есть ли лучший подход, чем использовать Thread.sleep?

Заранее спасибо

Ответы [ 2 ]

4 голосов
/ 30 июля 2010

Вы должны полностью отключить LocationManager для этого. Я сделал это в своем приложении, где я проверяю местоположение только каждые 10 секунд, потому что я обнаружил, что отключение экономит немного больше энергии аккумулятора, чем min_distance или min_time LocationManager.

Что-то вроде:

// 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 снова не включится.

1 голос
/ 13 января 2012

Если у вас есть оверлеи, подумайте, чтобы отключить их расположение:

@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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...