1

有什么方法可以阻止 AsyncTask 的 doInBackground 方法/线程启动,直到 onPreExecute 方法期间显示的 AlertDialog 被解除?

doInBackground 仅在 onPreExecute 完成时运行,但据我所知,打开 AlertDialog 并不会阻止 onPreExecute 完成。

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

Cancel 应该结束任务,并且 Disable Wifi 应该,好吧,禁用 wifi。doInBg 方法然后检查移动数据连接是否已启动,如果没有则进入睡眠循环直到它是。一旦它启动,doInBg 然后获取数据......

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

4

1 回答 1

0

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

于 2011-01-31T01:39:00.810 回答