Detecte el evento 'botón de inicio presionado' en el servicio de Android que muestra una interfaz de usuario (similar a chatheads de Facebook)

En chatheads de Facebook, que forman parte de la aplicación de mensajería de Facebook, observé el siguiente comportamiento: Hasta donde puedo ver, el encabezado del chat y la pantalla de chat abierta son partes de un servicio. No hay actividad involucrada.

¿Como puedo estar seguro? Después de presionar inicio en la pantalla de chat abierta, se vuelve a minimizar a una cabeza de chat, y puedo volver a abrir la pantalla de chat inmediatamente. Si la pantalla de chat era una actividad, reabrir la actividad a través destartActivity(intent) después de presionar el botón de inicio, demoraría el inicio de la actividad, como se especifica aquí:Iniciar una actividad desde un servicio después de presionar el botón INICIO sin el retraso de 5 segundos

y aquí:¿Razón por la demora de 5 segundos para mostrar una actividad al presionar el botón de inicio?

en el método onCreate de mi servicio, utilizo el siguiente código para mostrar una IU del servicio:

public class ServiceTest extends Service {
...
    @Override 
    public void onCreate() {
        super.onCreate();

        windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.TYPE_PHONE,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT);

        windowManager.addView(someView, params);
    }
....
}

¿Alguien tiene una idea de cómo puedo recibir el evento 'botón de inicio presionado' directamente de un servicio que muestra una interfaz de usuario? Me gustaría minimizar mi vista (similar a las cabezas de chat de Facebook) cuando el usuario presiona el botón de inicio.

Respuestas a la pregunta(8)

Su respuesta a la pregunta