2012-01-11 19 views

Respuesta

4

¿Es posible hacer algo como eso?

Solo si su actividad está en primer plano, en cuyo caso puede realizar un seguimiento de los eventos táctiles. No puede averiguar sobre los eventos táctiles que suceden en otras partes del sistema.

+0

me encontré con esta solución: http://stackoverflow.com/questions/4481226/creating-a-system-overlay-always-on-top-button-in-android y parece que funciona. Creo que no es bueno, ¿qué piensas? – Gabrielle

+0

@Gabrielle: Eso no funcionará en dispositivos más nuevos. Para prevenir los ataques de toma de acceso, * usted * puede obtener los eventos táctiles (y las aplicaciones subyacentes no), o * ellos * pueden obtener los eventos táctiles (y no puede). – CommonsWare

+0

Tiene razón, probé en un dispositivo más nuevo y no funciona. ¡Gracias! – Gabrielle

7

ACTION_USER_PRESENT es una acción de difusión, por lo que debería poder escribir un receptor de difusión para responder e iniciar su aplicación. Tenga en cuenta que es ACTION_USER_PRESENT

envía cuando el usuario está presente después del dispositivo se activa (por ejemplo cuando el bloqueo se ha ido).

Asimismo, sólo se encontró con un example donde la acción BOOT_COMPLETED emisión es utilizado por un receptor de radiodifusión para iniciar una aplicación en el arranque.

1

De acuerdo con el ciclo de vida de Android, si el usuario presiona el botón de inicio o el teclado bloqueado en Pause recibirán una llamada.Así que haga algo como esto.

@Override 
public void onPause() 
{ 
super.onPause(); 
Timer timer = new Timer(); 
TimerTask task = new TimerTask() { 

    @Override 
    public void run() { 
     // TODO Auto-generated method stub 
     finish(); 
    } 
}; 
timer.schedule(task, 60000); 
} 

y si el usuario llega antes de los 60 segundos después en onRestart().

@Override 
public void onRestart() 
{ 
super.onRestart(); 
timer.cancel(); 
timer.purge(); 
} 
Cuestiones relacionadas