2014-12-17 1 views
0

Мне интересно, как я обнаружил, что моя LiveCard потеряла фокус или что экран отключается из-за каких-либо действий со стороны пользователя? мне нужно остановить обновление местоположения на тех событиях, чтобы сохранить батареюКак обнаружить потерянный фокус

ответ

0

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

Функция OnStart является называется, когда приложение открывает и функция OnStop вызывается, когда он собирается близко. Это соответствует мест до зарегистрироваться и unregister (остановить) ваши события. Вы должны перезаписать эти две функции.

@Override 
protected void onStart() { 
    super.onStart(); 
    //you can register your Location event here 
} 

@Override 
protected void onStop() { 
    //Un-Register your Location event here 
    super.onStop(); 
} 

EDIT: Если эти два не работают, попробуйте unregistring сенсор внутри функции OnDestroy вместо этого. Его следует вызывать, если экран отключается из-за отсутствия действия за короткое время.

@Override 
    public void onDestroy() { 
     if (mLiveCard != null && mLiveCard.isPublished()) {  
      mLiveCard.unpublish(); 
      mLiveCard = null; 
     } 

     //Unregister your sensor below 

     super.onDestroy(); 
} 
+0

Эй, спасибо за ответ, но вы уверены, что это верно для живых карт в стекле? Я почти уверен, что они не выходят. – zarcel

+0

Я изменил его и добавил onDestroy(). Он должен работать. Он работает здесь. Вы попробовали? Вы можете поместить Log.e («Destroyed», «from onDestroy»); внутри onDestroy функция. Не забудьте поставить @Override вверху. – Programmer

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

  • Нет связанных вопросов^_^