Network Callback
目录
Network Callback
大多数情况下, 用户的设备都是有网络的, 但是当网络切换或者网络不佳的时候, 如果界面没能得到合适的数据, 就有可能出现
crash, 我们有必要进行一定的特殊处理, 首先就是要读取网络状态并进行回调
这个类经常改, 大多数方法为API21, 部分需要更高版本, 具体如下:
| 方法 | 调用时刻 |
|---|---|
| onAvailable(network) | 连接可用 |
onBlockedStatusChanged(network, blocked) API29 |
网络被阻止或解除阻塞 |
| onCapabilitiesChanged(network, networkCapabilities) | 状态修改但仍旧可用 |
| onLinkPropertiesChanged(network, linkProperties) | 连接属性修改 |
| onLosing(network, maxMsToLive) | 正在断开连接 |
| onLost(network) | 已断开连接 |
onUnavailable() API26 |
连接超时或达不到可用要求 |
我做了一个简单的工具来实现一些基础需求(有无网络,WIFI/流量):
其中有三个方法:分别实现了跟随生命周期注册和解注册事件,以及全局注册和解注册事件,注意使用之前需要提前初始化NetCallback.init(application)
|
|
回调获取网络状态通过Lambda语句回调的BooleanArray传入指定NetType来获取到是否连接
|
|
当然也可以直接通过NetCallback的静态成员获取网络状态:
|
|