Diálogo de alerta de Android desde dentro de un servicio de intenciones

Quiero mostrar un diálogo de alerta desde dentro de un servicio de intenciones.

AlertDialog alertDialog = new AlertDialog.Builder(this).create(); 

Esto arroja la siguiente excepción

  Unable to add window — token null is not for an application 

He intentado IntentService.this y getApplicationContext () también. Entre yo no quiero hacerlo usando una actividad. Sólo quiero mostrar un diálogo de alerta simple con un poco de texto.

Activity necesidad para la exhibición AlertDialog , porque no podemos exhibir el Dialog de cualquier Service

Solución.

Crear Activity como tema de diálogo e iniciar esa Activity desde el Service .

Solo tienes que registrarte Activity en menifest.xml como sigue

 android:theme="@android:style/Theme.Dialog" 

o

 android:theme="@android:style/Theme.Translucent.NoTitleBar" 

MyDialog.java

 public class MyDialog extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final AlertDialog alertDialog = new AlertDialog.Builder(this).create(); alertDialog.setTitle("your title"); alertDialog.setMessage("your message"); alertDialog.setIcon(R.drawable.icon); alertDialog.show(); } } 

Sólo si establece su tipo de alerta de tipo de TYPE_SYSTEM_ALERT en TYPE_SYSTEM_ALERT , se mostrará desde un servicio de intenciones.

  AlertDialog alertDialog = new AlertDialog.Builder(this).create(); 

Agregue éstos después de su código:

 alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); alertDialog.show(); 

Pero, tiene un costo:

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

Por favor visita

https://github.com/selmantayyar/Custom-SMS-Popup

¡Le asusta ayudarle !!

O lo que puede hacer es registrar anActivity en menifest.xml como sigue

 android:theme="@android:style/Theme.Dialog" 

o

 android:theme="@android:style/Theme.Translucent.NoTitleBar" 

Y trabajar alrededor de él

El problema se debe a Contexto . No puede utilizar esto como Contexto en el servicio de intención. Así que necesita pasar una variable de contexto de su servicio de intención a su cuadro de diálogo de alerta. Me gusta,

 AlertDialog alertDialog = new AlertDialog.Builder(context).create(); 
  • Android la diferencia entre onHandleIntent & onStartCommand
  • Cómo recopilar información de IntentService y actualizar la interfaz de usuario de Android
  • ¿Cómo probar IntentService android?
  • Esperando la devolución de llamada asincrónica en IntentService de Android
  • Servicios Roboeléctricos y de Intención
  • IntentService responde a muertos ResultReceiver
  • Utilizar Parcelable con un objeto con Hashmap
  • Mantener viva Servicio de Intención después de que la aplicación es asesinada
  • ¿Cómo iniciar la actividad de intentservice?
  • ¿Debe onHandleIntent ser llamado cuando IntentService se inicia con bindService?
  • ¿Está bien bloquear el subproceso de la interfaz de usuario al mostrar un diálogo de alerta?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.