Pregunta

¿Hay alguna forma de evitar que el método / hilo doInBackground de una AsyncTask se inicie hasta que se haya descartado un AlertDialog que se muestra durante el método onPreExecute?

doInBackground solo está destinado a ejecutarse cuando se completa onPreExecute, sin embargo, hasta donde yo sé, tener un AlertDialog abierto no impide que onPreExecute se complete.

Detalles: Estoy en mi teléfono en este momento, así que no puedo dar una muestra de código, pero la descripción general del código es que es una aplicación que requiere datos a los que solo se puede acceder a través de datos móviles debido a que se encuentra en la red de telecomunicaciones. El preExec de mi asynctask getData primero verifica si wifi está activo y, si es así, muestra un diálogo de alerta con las opciones Desactivar Wifi y Cancelar.

Cancelar debería finalizar la tarea, y Desactivar Wifi debería, bueno, desactivar wifi. El método doInBg luego verifica si la conexión de datos móviles está activa, y si no, entra en un ciclo de suspensión hasta que lo está. Una vez que está activo, doInBg luego obtiene los datos ...

Actualmente, si wifi está activado, doInBg comienza antes de que se cierre el cuadro de diálogo, quedando atrapado en el ciclo de suspensión hasta que algo hace que se active la conexión móvil ... Esto genera problemas potenciales que me gustaría evitar.

¿Fue útil?

Solución

Puede intentar iniciarlo en algún lugar para verificar si su wifi está activo, luego use AlertDialogListener para captar la acción de los botones en AlertDIalog.luego puede iniciar su Async dentro de AlertDialogListener.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top