问题:connectedSsid 的初始化依赖 onCreate 中的状态检查,如果检查失败,UI 就会出现延迟或缺失打勾的现象。
WIFI界面上上的一个标识代表成功连接。重启后出现偶尔不打勾的情况。
原始代码:
// if (connectedSsid != null && connectedSsid.equals(wifi.SSID)) {
// wifiOk.setVisibility(View.VISIBLE);Log.d(TAG, "Showing wifiOk for SSID: " + wifi.SSID);
// } else {
// wifiOk.setVisibility(View.GONE);Log.d(TAG, "Hiding wifiOk for SSID: " + wifi.SSID);
// }
// 检查是否是当前连接的 Wi-FiWifiInfo wifiInfo = wifiManager.getConnectionInfo();String currentBssid = (wifiInfo != null && wifiInfo.getSupplicantState() == SupplicantState.COMPLETED)? wifiInfo.getBSSID() : null;if ((connectedSsid != null && connectedSsid.equals(wifi.SSID)) ||(currentBssid != null && currentBssid.equalsIgnoreCase(wifi.BSSID))) {wifiOk.setVisibility(View.VISIBLE);} else {wifiOk.setVisibility(View.GONE);}