Android WifiSettings页面WIFI状态更新过程

我们在WiFiSettings界面连接WiFi的时候会看到WiFi Preference的summary状态会从正在连接切换到获取ip再切换到已连接的状态这一篇就分析状态更新过程

一、 WifiTracker.java

我们知道WifiSettings是监听了WifiTracker onAccessPointsChanged()来刷新状态的。我们先分析下哪里调用了onAccessPointsChanged()

再看下哪里调用了conditionallyNotifyListeners()。

1.1 updateAccessPoints ()

看下哪边会调用

这里总结一下:下面几个条件会刷新页面状态:

wifiSettings onStart回调需要更新界面的时候

广播接收到WifiManager.SCAN_RESULTS_AVAILABLE_ACTION

广播接收到WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION

广播接收到WifiManager.LINK_CONFIGURATION_CHANGED_ACTION

广播接收到WifiManager.NETWORK_STATE_CHANGED_ACTION(连接过程中的网络变化就是接收这个广播)

1.2 updateNetworkInfo ()

看下哪里调用了

这里总结一下:

当接收到下面两条广播会刷新页面状态。

WifiManager.NETWORK_STATE_CHANGED_ACTION

WifiManager.RSSI_CHANGED_ACTION

1.3 clearAccessPointsAndConditionallyUpdate()

这个方法是 WiFi关闭的时候会调用。

二、WifiSettings.java

这个方法的注释说命令列表已更新,需要调用getAccessPoints来获取最新信息。我们就从这个方法开始向上和向下分析刷新的流程。

这个方法最后会调用preference.refresh()刷新状态。我们进入AccessPointPreference中去看下refresh()

三、AccessPointPreference.java

从这边可以看到summary是从accessPoint中获取的。forSavedNetworks是表示是否是已保存网络界面,这里调用的是AccessPoint的getSettingsSummary

上面方法执行的就是刷新页面的文字状态,过程到这里就结束了。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值