2011-05-31 12 views
13

¿Es posible detectar cuándo se ejecuta una aplicación (es decir, cuando el usuario hace clic en el icono de la aplicación)? Intenté registrar un intento del tipo Intent.ACTION_MAIN usando una categoría del tipo Intent.CATEGORY_LAUNCHER esperando que esto me avise cada vez que se inicie una aplicación. El problema es que mi receptor de emisión nunca recibe una llamada.¿Cómo se puede detectar el lanzamiento de una aplicación Android?

¿Es esta una combinación de intención/categoría ilegal para la cual registrarse? ¿Hay algún método que pueda usar para determinar cuándo se inicia la aplicación?

+0

¿Qué estás realmente tratando de lograr? Puede haber algunas soluciones –

+0

¿Ha creado Servicio para lo mismo? – Nikhil

Respuesta

16

El intento de inicio de la aplicación no es una emisión, por lo que no hay forma de registrar un receptor de difusión y recibirlo. Como se respondió anteriormente here, no hay forma de detectar el lanzamiento de la aplicación. Posiblemente podría escribir un servicio que sondeó las tareas en ejecución buscando la tarea de la aplicación (usando la interfaz ActivityManager), pero eso es lo mejor que puedo pensar y probablemente no sea muy eficiente.

+0

Bueno, apesta, pero al menos puedo sondear para obtener una forma similar (pero no tan buena) de detectar. Gracias por la ayuda. –

+0

Avast! antivirus puede escanear aplicaciones en el lanzamiento, cualquiera tiene alguna idea de qué método utilizan, ¿así que? – Haravikk

5

No hay ningún intento de transmisión cuando se inicia una aplicación para el caso general. Si la aplicación que desea detectar es suya, puede activar su propia transmisión intencionada, pero si no, entonces no, no podrá detectarla.

Cuestiones relacionadas