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
的静态成员获取网络状态:
|
|