Determinación de la aplicación actual en primer plano a partir de una tarea o servicio en segundo plano

Deseo tener una aplicación que se ejecute en segundo plano, que sepa cuándo se está ejecutando alguna de las aplicaciones integradas (mensajes, contactos, etc.).

Entonces mis preguntas son:

Cómo debo ejecutar mi aplicación en segundo plano.

Cómo mi aplicación en segundo plano puede saber cuál es la aplicación que se ejecuta actualmente en primer plano.

Las respuestas de personas con experiencia serían muy apreciadas.

Respuestas a la pregunta(13)

Su respuesta a la pregunta