Cómo mostrar un cuadro de diálogo de un servicio

He leído realmente un montón de mensajes sobre este tema, sin embargo nada funciona para mí (o no tiene el efecto que deseo).

Tengo una aplicación, que después de iniciar sesión inicia un servicio de fondo (implementación de la clase de servicio). Este servicio se sincroniza con un servidor y si llega un nuevo pedido, crea una notificación.

Hasta ahora todo funciona bien, tengo la notificación y el mensaje Toast. Sin embargo, me gustaría tener un diálogo, que notifique al usuario sobre el nuevo pedido.

Como he entendido, puede iniciar una actividad desde dentro del servicio, que muestra el diálogo. Esto funciona, pero la actividad se inicia en la parte superior de la pila de actividad actual y muestra el cuadro de diálogo. Tengo una actividad sin vista adjunta y muestra correctamente el diálogo, sin embargo, en un fondo negro.

Lo que quiero es mostrar el diálogo sobre la actividad actual, haciendo que el fondo real (la actividad en ejecución) se desvanezca y muestre el diálogo.

¿Es esto de alguna manera posible?

Gracias, Filip

5 Solutions collect form web for “Cómo mostrar un cuadro de diálogo de un servicio”

Recomiendo altamente, altamente, que usted no hace esto (va contra el diseño de Androide y las pautas de la interfaz de usuario). Las notificaciones son la forma preferida de realizar lo que estás haciendo (lo cual suena como si ya lo hayas logrado).

Dicho esto, si usted debe hacerlo, yo recomendaría sólo usar una actividad temática Dialog. De esta manera no tiene que iniciar un diálogo independiente. Consulte http://developer.android.com/guide/topics/ui/themes.html#ApplyATheme para saber cómo hacer esto.

Sólo se puede mostrar el diálogo desde el servicio si se trata de un cuadro de diálogo de alerta del sistema. Por lo tanto, establezca el parámetro de composición de la ventana TYPE_SYSTEM_ALERT en Diálogo como sigue:

 dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 

Pero, necesita el permiso SYSTEM_ALERT_WINDOW. Por lo tanto, no olvide añadir esta permissin en el archivo de manifiesto.

 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 

Puedes empezar aprendiendo cómo crear una actividad que se parece a un diálogo (sin barra de título, fondo transparente, efecto "flotante", etc.) y no, no puedes simplemente iniciar un diálogo sin actividad

No, no puedes secuestrar actividad que no sea "tuya" y ordenarla que muestre el diálogo. Su enfoque de iniciar su propia actividad es el clásico.

No se puede mostrar un diálogo. Pero usted puede ir alernative manera inflando su visión modificada para requisitos particulares de modo que usted pueda demostrar un diálogo en la pantalla cuando ciertas condiciones se satisfacen.

  • ¿Por qué NullPointerException ocurre con el uso de BillingService estándar?
  • Google Cloud Messaging - GCM - SERVICE_NOT_AVAILABLE
  • Gran uso de memoria en las notificaciones
  • Cómo utilizar NotificationCompat.Builder y startForeground?
  • Android ¿cómo espero hasta que un servicio esté realmente conectado?
  • Servicio de ejecución en el fondo?
  • En Android: ¿Cómo llamar a la función de la actividad de un servicio?
  • Android detecta el estado táctil desde cualquier aplicación
  • PopUp diálogo Android de hilo de fondo
  • ¿Cómo comprobar el permiso automático de MIUI mediante programación?
  • Diferencia entre los receptores de servicio y difusión en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.