在AsyncTask onPreExecute中使AlertDialog停止doInBackground直到它被解除

时间:2011-01-31 00:22:55

标签: android android-asynctask alertdialog dismiss

有没有办法阻止AsyncTask的doInBackground方法/线程启动,直到onPreExecute方法中显示的AlertDialog被解除?

doInBackground只是在onPreExecute完成时运行,但据我所知,开放的AlertDialog不会停止onPreExecute完成。

详细说明: 我现在在手机上,所以无法提供代码示例,但代码概述是它是一个应用程序,需要的数据只能通过移动数据访问,因为它是在电信网络上。我的getData asynctask的preExec首先检查wifi是否已启动,如果是,则显示一个带有禁用Wifi和取消选项的警告对话框。

取消应该结束任务,而禁用Wifi应该,禁用wifi。然后,doInBg方法检查移动数据连接是否已启动,如果没有进入睡眠循环,则它是。一旦启动,doInBg就会获取数据......

目前,如果打开wifi,doInBg会在对话框解除之前启动,陷入睡眠循环,直到出现导致移动连接的问题......这会导致我想避免的潜在问题。

1 个答案:

答案 0 :(得分:0)

您可以尝试在某处启动它以检查您的wifi是否已启动,然后使用AlertDialogListener来捕获AlertDalog中按钮的操作。然后你可以在AlertDialogListener中启动你的Async。