Мне интересно, как я обнаружил, что моя LiveCard потеряла фокус или что экран отключается из-за каких-либо действий со стороны пользователя? мне нужно остановить обновление местоположения на тех событиях, чтобы сохранить батареюКак обнаружить потерянный фокус
0
A
ответ
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();
}
Эй, спасибо за ответ, но вы уверены, что это верно для живых карт в стекле? Я почти уверен, что они не выходят. – zarcel
Я изменил его и добавил onDestroy(). Он должен работать. Он работает здесь. Вы попробовали? Вы можете поместить Log.e («Destroyed», «from onDestroy»); внутри onDestroy функция. Не забудьте поставить @Override вверху. – Programmer