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

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.

  • Si un servicio vinculado o hilos personalizados cuando descarga algo?
  • No puedo encontrar la causa de mi accidente con este seguimiento de pila
  • Android detecta el estado táctil desde cualquier aplicación
  • ¿Es posible utilizar la herencia en las interfaces AIDL?
  • PopUp diálogo Android de hilo de fondo
  • Cómo pasar valor de cadena de servicio a la actividad en android?
  • Android: uso de la red en un servicio
  • MVC en Android: ¿Aplicación o servicio para actualizaciones asíncronas?
  • Obtener ubicación GPS a través de un servicio en Android
  • Llamar a getLayoutInflater () en lugares que no están en actividad
  • Temporizador de cuenta atrás Android en segundo plano
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.