Skip to content
NetStatusBus 简化了网络监听的流程,使代码更加简洁高效
Branch: master
Clone or download
Latest commit b8dd8bd May 29, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app 修复继承时出现的问题 May 29, 2019
gradle/wrapper 去除使用广播进行网络监听 May 15, 2019
netbuslib 修复继承时出现的问题 May 29, 2019
.gitignore Initial commit Mar 31, 2019
README.md Update README.md May 29, 2019
build.gradle
gradle.properties Initial commit Mar 31, 2019
gradlew bug fix May 18, 2019
gradlew.bat Initial commit Mar 31, 2019
settings.gradle 修改包名 Apr 3, 2019

README.md

NetStatusBus Download

NetStateBus 是一个可以无缝进行网络状态监听的框架,使用简单,具有强解耦,高性能等特性。

快速体验

如果二维码图片不可见,点我下载Demo体验

通过以下方式来使用 NetStatusBus

  1. 通过 Gradle 添加依赖:
implementation 'com.sunchen:netstatusbus:0.1.5'
  1. Application 中初始化 NetStatusBus:
 // 尽可能早的进行这一步操作, 建议在 Application 中完成初始化操作
 NetStatusBus.getInstance().init(this);
  1. 根据你的生命周期来注册和注销订阅者,例如:
 @Override
 public void onStart() {
     super.onStart();
     NetStatusBus.getInstance().register(this);
 }

 @Override
 public void onStop() {
     super.onStop();
     NetStatusBus.getInstance().unregister(this);
 }
  1. 声明你的订阅方法,在该方法中可以监听到网络状态的变更: 比如想要监听 wifi 连接的情况
@NetSubscribe(mode = Mode.WIFI_CONNECT)
 public void doSometing() {
      tvTips.setText("已连接到wifi");
 }

注意事项

订阅方法可以选填一个NetType参数,可以通过NetType的值来判断当前网络类型。

@NetSubscribe 中可以指定 mode 用来设置订阅的模式,mode类型如下:

Mode.AUTO

这是默认值,任何网络状态发生变化,该类型订阅者都会被调用。

//所有网络变化都会被调用,可以通过 NetType 来判断当前网络具体状态
@NetSubscribe(mode = Mode.AUTO)
public void netChange(NetType netType) {
    Log.d(Constrants.LOG_TAG, netType.name());
}

Mode.WIFI

由 WIFI 改变引发的网络状态变化的情况下(wifi连接和断开),该类型订阅者会被调用。

// 当 wifi 连接和失去连接时都被调用
@NetSubscribe(mode = Mode.WIFI)
public void wifiChange(NetType netType) {
    Log.d(Constrants.LOG_TAG, netType.name());
}

Mode.WIFI_CONNECT

仅在 WIFI 成功连接后,该类型订阅者会被调用。

// 只有当 wifi 连接时都被调用
@NetSubscribe(mode = Mode.WIFI_CONNECT)
public void wifiChange() {
    Log.d(Constrants.LOG_TAG, "连接到wifi网络");
}

Mode.MOBILE

由移动网络改变引发的网络状态变化的情况时(移动网络连接和断开),该类型订阅者会被回调。

// 当移动网络连接和失去连接时都会被调用
@NetSubscribe(mode = Mode.MOBILE)
public void netChange(NetType netType) {
    Log.d(Constrants.LOG_TAG, netType.name());
}

Mode.MOBILE _CONNECT

仅在移动网络成功连接后,会被回调。

// 当移动网络连接时调用
@NetSubscribe(mode = Mode.MOBILE _CONNECT)
public void netChange() {
    Log.d(Constrants.LOG_TAG, "连接到移动网络");
}

Mode.NONE

只有当网络丢失时,该类型订阅者才会被回调。

// 只有当网络丢失时,该类型订阅者才会被回调。
@NetSubscribe(mode = Mode.NONE)
public void netChange() {
    Log.d(Constrants.LOG_TAG, "失去网络");
}

注意:由于Android 在7.0以后出于性能及安全的考虑对广播做了大量的限制,监听网络连接的广播在7.0以后的系统上也只有动态注册才能生效。 本库出于性能考虑决定使用 NetworkCallback 类来代替广播实现网络状态变化监听。因此需要您将minSdkVersion 升级为21及以上。

如果确实需要满足在 Android 5.0 以下机型中进行运行,请联系我,我者会根据反馈考虑是否重新加入广播进行监听网络事件。

联系方式

微博

QQ Email: sunchen.cc@qq.com

You can’t perform that action at this time.