Есть ли способ предотвратить запуск метода / потока doInBackground AsyncTask до тех пор, пока не будет удален AlertDialog, который отображается во время метода onPreExecute?
doInBackground должен запускаться только после завершения onPreExecute, однако, насколько я могу судить, наличие открытого AlertDialog не останавливает завершение onPreExecute.
Подробнее:
Я нахожусь на моем телефоне в данный момент, поэтому не могу дать пример кода, но обзор кода заключается в том, что это приложение, которому требуются данные, доступ к которым возможен только через мобильные данные, поскольку они находятся в сети оператора. PreExec моей асинхронной задачи getData сначала проверяет, работает ли Wi-Fi, и, если это так, отображает диалоговое окно с опциями «Отключить Wi-Fi» и «Отмена».
Отмена должна завершить задачу, а Отключение Wi-Fi должно, ну, отключить Wi-Fi. Затем метод doInBg проверяет, установлено ли мобильное соединение для передачи данных, а если нет, то переходит в спящий цикл до тех пор, пока это не так. Как только это произойдет, doInBg получит данные ...
В настоящее время, если Wi-Fi включен, doInBg запускается до закрытия диалогового окна, попадая в цикл ожидания, пока что-то не вызовет мобильное соединение ... Это приводит к потенциальным проблемам, которых я бы хотел избежать.