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.