Android网络变化全局监听
16lz
2021-01-24
AndroidNetworkMonitor
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8HuGi6bF-1582728182498)(https://jitpack.io/v/kongqw/NetworkMonitor.svg)]
Android 全局网络变化监听
GitHub的地址
How to
To get a Git project into your build:
Step 1. Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
allprojects { repositories { ... maven { url 'https://jitpack.io' } }}
Step 2. Add the dependency
dependencies { implementation 'com.github.kongqw:NetworkMonitor:1.0.1'}
使用
初始化
在Application
中初始化
NetworkMonitorManager.getInstance().init(this)
注册与反注册
在需要监听网络状态的页面进行注册与反注册
NetworkMonitorManager.getInstance().register(this)
NetworkMonitorManager.getInstance().unregister(this)
监听网络状态变化
@NetworkMonitorfun onNetWorkStateChange(networkState: NetworkState) { when (networkState) { NetworkState.NONE -> { // TODO 暂无网络 } NetworkState.WIFI -> { // TODO WIFI网络 } NetworkState.CELLULAR -> { // TODO 蜂窝网络 } }}
也可以监听指定网络状态,例如
@NetworkMonitor(monitorFilter = [NetworkState.NONE])fun onNetWorkStateChangeNONE(networkState: NetworkState) { // TODO 网络断开时回调}
@NetworkMonitor(monitorFilter = [NetworkState.WIFI])fun onNetWorkStateChange1(networkState: NetworkState) { // TODO WIFI连接上的时候回调}
@NetworkMonitor(monitorFilter = [NetworkState.WIFI, NetworkState.CELLULAR])fun onNetWorkStateChange2(networkState: NetworkState) { // TODO 连接上WIFI或蜂窝网络的时候回调}
判断当前是否有网络连接
val hasNetworkCapability: Boolean = NetworkStateUtils.hasNetworkCapability(applicationContext)
获取当前的网络状态
val networkState: NetworkState = NetworkStateUtils.getNetworkState(applicationContext)
混淆
-keepattributes *Annotation*-keepclassmembers class * { @com.kongqw.network.monitor.interfaces.NetworkMonitor ;}-keep class com.kongqw.network.monitor.** { *; }
更多相关文章
- android电话处理
- android 用BroadcastReceiver监听网络~
- Android轮播图封装,下拉刷新相结合
- android之RadioButton设置setChecked(true)失效
- android添加常驻图标到状态栏
- 面试篇--android下网络通讯机制(三种网络通讯方式)
- Android(安卓)intent传递hashMap对象,遍历hashMap,改变menu状态
- android 基础学习(3)-----activity的生命周期
- Activity状态转换和Activity栈