问题: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-Fi
WifiInfo 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);
}