AlertDialog desde dentro BroadcastReceiver? ¿Se puede hacer? Estoy trabajando en una aplicación que se abrirá un cuadro de Diálogo si obtengo un mensaje SMS. Estoy tratando de código esta dentro de un BroadcaseReceiver. Pero no puedo utilizar esta línea de código AlertDialog.Builder builder = new AlertDialog.Builder(this);. Por favor alguien puede ayudarme con un toque!

¿Por qué usted no puede utilizar AlertDialog.Builder builder = new AlertDialog.Builder(this); no es feliz con la this de referencia? Si ese es el caso, tratar de reemplazarlo con una llamada a getApplicationContext(). No estoy seguro de si este es el problema que usted está teniendo a través de. Me siento como en este caso, el cuadro de diálogo sólo flash en la pantalla durante un segundo antes de que el BroadcastReceiver devuelve.
puedo utilizar getApplicationContext() !
Tener un cuadro de diálogo pop-up de forma espontánea (desde el punto de vista del usuario) suena como el mal diseño de interfaz de usuario para mí. ¿Por qué no usar una notificación? Eso es lo que son.
este es el ejemplo completo, ir a través del enlace stackoverflow.com/a/41137562/4344659

OriginalEl autor Java Review | 2011-01-30

5 Comentarios

  1. 14

    Principal problema: tratar de evitar la colocación de tiempo de consumo de funciones en BroadcastReceiver. Sólo debe recibir e iniciar su posterior procesamiento en los límites de la Actividad/Servicio.

    ACTUALIZACIÓN:

    Por favor, verifique las siguientes fuentes que podrían ser de ayuda:

    Preguntas similares en StackOverflow:

    Cómo enviar datos desde BroadcastReceiver a una Actividad en android?

    Android receptor del SMS no funciona

    SDK de Android demo de ejemplo:

    android-sdk-windows\samples\android-8\ApiDemos\src\com\example\android\apis\os\SmsMessagingDemo.java

    Y por supuesto estándar de Android documentación de la API: http://developer.android.com/reference/android/content/BroadcastReceiver.html

    UPDATE2:

    Añadido de la aplicación esqueleto de como debería lucir. Por favor, tenga en cuenta que no vista de contenido está definido. Esto es debido a que su aplicación tendrá pantalla transparente. Para lograr que

    @android:/estilo del Tema.Translúcido

    se introduce bajo el Tema de la etiqueta para esta actividad en AndroidManifest.xml.

    Creo que su razón. puede usted por favor me ayude con esto!
    Yo recomendaría usted para crear el Servicio o Actividad, con fondo transparente y se unen BroadcastReceiver. Comprobar el SDK de Android de ejemplo. También, tengo algunas útil de la pregunta/respuesta acerca de que en mi perfil.
    puede usted por favor decirme donde buscar, yo soy nuevo en todo esto. googletalk conmigo si usted desea StutteringJohnSmith
    el AlertDialog nunca se muestra
    Actualizado mi respuesta para incluir fuentes útiles de conocimiento.

    OriginalEl autor Zelimir

  2. 7

    He estado buscando en él y la documentación de la BroadcastReceiver en realidad dice:

    public abstract void onReceive
    (Context context, Intent intent)

    Desde: API de Nivel 1 Este método es
    se llama cuando el BroadcastReceiver es
    la recepción de un Intento de difusión. Durante
    este tiempo se puede utilizar el otro
    métodos en BroadcastReceiver para
    ver/modificar el resultado actual de valores.
    La función es normalmente llamado dentro de
    el hilo principal de su proceso, por lo que
    nunca debe realizar de larga duración
    las operaciones en ella (hay un tiempo de espera
    de 10 segundos que el sistema permite
    antes de considerar que el receptor sea
    bloqueado y un candidato para ser asesinados).
    Usted puede abrir un cuadro de diálogo emergente en
    la implementación de onReceive().

    Que no puede lanzar un cuadro de diálogo emergente en
    la implementación de onReceive()

    Por lo que parece no es posible

    OriginalEl autor ccheneson

  3. 3

    Este es tarde, pero esto puede ayudar a alguien.

    Usted no puede utilizar el cuadro de diálogo de aviso dentro de difusión receptor, podemos usar este sólo en la actividad o servicio. Tratar como este

    En su método onReceive de broadcastreceiver agregar

    y en yourclass conjunto de su mensaje de diálogo, de forma que aparecerá cuando se activa el receptor de eventos. Lo probé y funcionó a mí. Espero que esto pueda ayudar a alguien 🙂

    OriginalEl autor AndroidOptimist

  4. 0

    puede crear un nuevo transparente de la actividad y, a continuación, crear Alerta de Diálogo en la actividad, siempre que su alerta será mostrado llamar a esa actividad a partir de su emisión receptor ,esto podría funcionar, no probado

    Va a trabajar, lo he probado y se describe que en mi respuesta.

    OriginalEl autor Pankaj Mehra

  5. -1

    sustituir la palabra «this» dentro de la AlertDilaog con el «contexto», el primer parámetro en la que onRecieve método.

    Yo probé usando el contexto, pero nunca veo el Dilaog
    gracias umesh pero esto no va a funcionar
    el AlertDialog nunca se muestra
    cómo llegué a este errror: 01-30 16:03:21.748: ADVERTIR a/administrador de ventanas(34): tratado de agregar de la ventana con la no aplicación token WindowToken{43c345e8 token=null}. Abortar.
    sí, y entonces empecé a recibir el error anterior

    OriginalEl autor Umesh

Dejar respuesta

Please enter your comment!
Please enter your name here