Determinar la aplicación en primer plano actual 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 (mensajería, 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...