Ho bisogno di utilizzare il listener inattivo per ascoltare che l'utente sta utilizzando l'applicazione o il periodo di inattività quando l'attività è attiva. Devo fare qualcosa quando l'utente non usa l'applicazione più di dieci secondi. Come posso renderlo possibile?Come posso avere listener inattivo sullo schermo?
6
A
risposta
7
Ecco l'idea di come si può realizzare questo compito:
primo luogo è necessario un Runnable(), che sarà eseguito quando si verifica il tuo timeout (per esempio 10 sec.). Di seguito è riportato il Runnable():
private Runnable DoOnTimeOut = new Runnable()
{
public void run()
{
// Do something Here
}
}
Ora, nella vostra attività, è possibile chiamare postDelayed per il DoOnTimeOut:
Handler hl_timeout = new Handler();
@Override
public void onCreate(Bundle b)
{
hl_timeout.postDelayed(DoOnTimeOut, 10000); // The DoOnTimOut will be triggered after 10sec
}
Ora, parte più importante è che quando si vede l'interazione dell'utente, vuoi per annullare la chiamata a DoOnTimeOut e quindi impostare nuovamente la chiamata per i successivi 10 secondi. Ecco il metodo Override della tua attività per l'interazione dell'utente:
@Override
public void onUserInteraction()
{
super.onUserInteraction();
//Remove any previous callback
hl_timeout.removeCallbacks(DoOnTimeOut);
hl_timeout.postDelayed(DoOnTimeOut, 10000);
}
Spero che ti sarà utile.
ottima risposta, hai salvato la mia giornata! Grazie – Ale