2011-12-02 18 views
6

Necesito usar escucha inactiva para escuchar que el usuario está usando la aplicación o inactivo cuando la actividad está activa. Necesito hacer algo cuando el usuario no está usando la aplicación más de diez segundos. ¿Cómo puedo hacerlo posible?¿Cómo puedo tener el oyente inactivo de pantalla?

Respuesta

7

Aquí es la idea de cómo se puede lograr esta tarea:

En primer lugar se necesita un Ejecutable(), que se llevará a cabo cuando se produce el tiempo de espera (por ejemplo 10 seg.). A continuación se Ejecutable():

private Runnable DoOnTimeOut = new Runnable() 
{ 
    public void run() 
    { 
     // Do something Here 
    } 
} 

Ahora, en su actividad, puede llamar postDelayed para la DoOnTimeOut:

Handler hl_timeout = new Handler(); 

@Override 
public void onCreate(Bundle b) 
{ 
    hl_timeout.postDelayed(DoOnTimeOut, 10000); // The DoOnTimOut will be triggered after 10sec 
} 

Ahora, lo más importante es que cuando se ve la interacción del usuario, que desea para cancelar la llamada a DoOnTimeOut y luego volver a configurar la llamada para los próximos 10 segundos. Aquí está el método de anulación de su actividad para la interacción del usuario:

@Override 
public void onUserInteraction() 
{ 
    super.onUserInteraction(); 
    //Remove any previous callback 
    hl_timeout.removeCallbacks(DoOnTimeOut); 
    hl_timeout.postDelayed(DoOnTimeOut, 10000); 
} 

Espero que sea útil para usted.

+0

¡excelente respuesta, me salvaste el día! Gracias – Ale

Cuestiones relacionadas