2009-11-25 15 views
7

En mi actividad hay algunas cosas sucediendo en un hilo de fondo, que se inicia en Activity_1. El procesamiento del hilo de fondo lleva un tiempo y quiero notificar al usuario cuando se completa a través de un AlertDialog. Sin embargo, el usuario podría haber cambiado a Activity_2 o Activity_3 mientras tanto y me gustaría mostrar AlertDialog siempre en la Actividad actual.Android: levanta AlertDialog desde el hilo de fondo

¿Alguna idea de cómo hacer esto?

Respuesta

3

Terminé haciendo algo como esto en mi hilo de fondo. Funciona, pero no está seguro de si es una "buena" solución.

Looper.prepare(); 
mActivity.showDialogAlertDefault(); 
Looper.loop(); 
Looper.myLooper().quit(); 
+0

Esto funcionó para mí también, sin embargo, después de que aparezca el cuadro de diálogo de alerta, parece saber que la devolución ejecuta el hilo que estaba ejecutando antes de que apareciera el cuadro de diálogo de alerta. ¿Alguna sugerencia? ¿Quieres ver mi código? – prolink007

+0

código invocación con retraso extremo tiempo a tiempo. –

0

Esto probablemente significa que la manera correcta es utilizar un servicio, en lugar de un hilo de fondo simple. El trabajo en segundo plano será más resistente a la pausa o el apagado, y no tiene que preocuparse por hacer una AsyncTask que esté constantemente manteniendo un seguimiento de un padre de actividad diferente.

+0

Mi "hilo de fondo" es en realidad un servicio aparte. Lo que estoy buscando, sin embargo, es un mensaje global de aplicación (Diálogo) que se puede generar en cualquier lugar de la aplicación. ¿Eso significa que tengo que implementar un Oyente y un Diálogo en cada actividad o puedo hacerlo en un solo punto para toda la aplicación? La otra pregunta es, ¿qué estoy escuchando (es un intento o algo más)? – znq

Cuestiones relacionadas