2015-05-12 3 views
0

Я создаю приложение, которое использует locationManager() для обработки обновлений с GPS. Когда приложение закрыто, я хочу, чтобы обновления из диспетчера location остановились и на данный момент есть эта часть кода.onPause(), различные результаты от кнопки home и back

@Override 
protected void onPause() { 
    super.onPause(); 
    if(locationManager != null){ 
     locationManager.removeUpdates(locationListener); 
} 

Когда я выйти из приложения с помощью кнопки назад, OnPause() называется и остановка GPS. Ничего странного здесь. Но, если я нажимаю кнопку «домой», маркер GPS в строке состояния остается видимым, хотя onPause называется одним и тем же.

+1

Вы перечитали onStop()? – Amsheer

ответ

0

Это связано с тем, что при выходе из приложения с помощью кнопки «Назад» активность уничтожается (получает обратный вызов onDestroy). И поскольку нет никакого способа, использование GPS-маркера также скрыто. Если вы заблокируете экран устройства или нажмите кнопку «домой», приложение все еще запускается, но действие прекращается. С вашим кодом вы не получите никаких обновлений GPS после onPause, пока не зарегистрируетесь для них снова.

Смежные вопросы