NetMonitor
Introduction: android 网络监控下的观察者模式运用
Tags:
这是一个运用观察者模式写的网络状态监听库!
注意在清单文件中添加网络权限:
< uses-permission android:name="android.permission.INTERNET" />
< uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
< uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
用法
1-继承 NetApplication,或者在 AndroidManifest.xml 中声明(套路)
public class App extends NetApplication {
@Override
public void onCreate() {
super.onCreate();
}
}
2-如果 Activity 需要监听网络状态
private NetObserver mNetObserver = new NetObserver() {
@Override
public void notify(NetAction action) {
if (action.isAvailable()) {
} else {
}
}
};
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.mContext = this;
NetMonitor.getInstance().addObserver(this.mNetObserver);
}
@Override
protected void onDestroy() {
super.onDestroy();
NetMonitor.getInstance().delObserver(this.mNetObserver);
}
PS: NetApplication 主要是内部初始化广播监听者,如果广播接收者收到了网络变化广播,就会解析当前具体网络类型,然后通知被观察者(Observable),被观察者通知所有观察者网络有变化了和当前网络类型,这里枚举了 6 种类型: UNKNOWN, WIFI, MOBILE, MOBILE2G, MOBILE3G, MOBILE4G