【发布时间】:2014-11-24 13:03:50
【问题描述】:
我正在创建一个应用程序,它将在其MainActivity 中显示已配置的 Wi-Fi 网络列表。现在,在获取已配置网络列表之前,我的应用程序会检查 Wi-Fi 是否已打开。如果没有,它会显示一个AlertDialog,其中包含一个“打开 Wi-Fi” Button,它会触发一个打开 Wi-Fi 的 AsyncTask。
现在,我正在使用此代码来获取已配置的 Wi-Fi 网络列表
@SuppressWarnings("deprecation")
private ArrayList<String> getAvailableNetworks() {
manager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
availableNetworks = new ArrayList<String>();
if (!manager.isWifiEnabled()) {
showDialog(2);
}
if (manager.isWifiEnabled()) {
configuredNetworks = manager.getConfiguredNetworks();
for (int i = 0; i < configuredNetworks.size(); i++) {
availableNetworks.add(configuredNetworks.get(i).SSID.replaceAll("\"", ""));
}
}
return availableNetworks;
}
现在的问题是,当应用程序发现 Wi-Fi 已关闭时,它只会使用 showDialog(2); 显示 AlertDialog,然后继续执行下一行代码,留下配置的网络列表完全空白。
如何让它等到AsyncTask 完成打开 Wi-Fi 后再继续执行下一行代码?
提前致谢。
【问题讨论】:
-
您可以在此处使用 if-else,如果在侦听器中用于 wifi 状态更改,也可以将您的内容放在第二个位置,并在连接时运行代码。
标签: java android android-asynctask