Potrzebuję używać bezczynny odbiornik do słuchania, użytkownik korzysta z aplikacji lub bezczynności, gdy aktywność jest żywa. Muszę coś zrobić, gdy użytkownik nie korzysta z aplikacji dłużej niż dziesięć sekund. Jak mogę to zrobić?Jak mogę mieć nieaktywnego słuchacza?
6
A
Odpowiedz
7
Oto pomysł, jak można osiągnąć to zadanie:
Po pierwsze potrzebujesz Runnable(), która zostanie uruchomiona w momencie wystąpienia Twój limit czasu (na przykład 10 sek.). Poniżej znajduje się Runnable():
private Runnable DoOnTimeOut = new Runnable()
{
public void run()
{
// Do something Here
}
}
Teraz, w swojej działalności, można nazwać postDelayed dla DoOnTimeOut:
Handler hl_timeout = new Handler();
@Override
public void onCreate(Bundle b)
{
hl_timeout.postDelayed(DoOnTimeOut, 10000); // The DoOnTimOut will be triggered after 10sec
}
Teraz najważniejsze jest to, że kiedy widzisz interakcji użytkownika, chcesz aby anulować wywołanie DoOnTimeOut, a następnie ponownie ustawić wywołanie na następne 10 sekund. Oto metoda przesłaniania Twojej aktywności w Interakcji z użytkownikiem:
@Override
public void onUserInteraction()
{
super.onUserInteraction();
//Remove any previous callback
hl_timeout.removeCallbacks(DoOnTimeOut);
hl_timeout.postDelayed(DoOnTimeOut, 10000);
}
Mam nadzieję, że będzie dla Ciebie pomocna.
Świetna odpowiedź, uratowałeś mój dzień! Dzięki – Ale