All Projects → tianma8023 → NetDetector

tianma8023 / NetDetector

Licence: other
🍊 A simple library that can detect network state changes on Android device. / 通过使用BroadcastReceiver来检测Android设备网络变化的库

Programming Languages

java
68154 projects - #9 most used programming language

NetDetector

A simple library that can detect network state changes on Android device by using BroadcastReceiver.

通过使用BroadcastReceiver来检测Android设备网络变化的库

功能

  • 监听网络状态,当网络状态改变时进行回调

Dependency 导入

Android Studio / Gradle

  1. 要使用这个库,需要把 jitpack.io 添加到仓库列表中,在 项目根目录build.gradle 中添加:
    allprojects {
        repositories {
            jcenter()
            maven { url 'https://jitpack.io' }
        }
    }
  2. 在相应 模块build.gradle 中加入库的依赖:
        dependencies {
                compile 'com.github.tianma8023:NetDetector:v0.2.0'
        }

使用

  1. 添加权限

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  2. Application 注册 BroadcastReceiver:

    public class AppContext extends Application{
    
        @Override
        public void onCreate() {
            super.onCreate();
            // 注册BroadcastReceiver
            NetStateChangeReceiver.registerReceiver(this);
        }
    
        @Override
        public void onTerminate() {
            super.onTerminate();
            // 取消BroadcastReceiver注册
            NetStateChangeReceiver.unregisterReceiver(this);
        }
    }
  3. BaseActivity 抽取,在 BaseActivity 中默认实现接口 NetStateChangeObserver 并提供是否需要注册 Observer 的方法:

    public class BaseActivity extends AppCompatActivity implements NetStateChangeObserver {
    
        @Override
        protected void onResume() {
            super.onResume();
            if (needRegisterNetworkChangeObserver()) {
                NetStateChangeReceiver.registerObserver(this);
            }
        }
    
        @Override
        protected void onStop() {
            super.onStop();
            if (needRegisterNetworkChangeObserver()) {
                NetStateChangeReceiver.unregisterObserver(this);
            }
        }
    
        /**
         * 是否需要注册网络变化的Observer,如果不需要监听网络变化,则返回false;否则返回true.默认返回false
         */
        protected boolean needRegisterNetworkChangeObserver() {
            return false;
        }
    
        @Override
        public void onNetDisconnected() {
        }
    
        @Override
        public void onNetConnected(NetworkType networkType) {
        }
    }
  4. 需要实现网络监听的 Activity 只需要复写方法 needRegisterNetworkChangeObserver 并返回 true ,并复写相关回调函数即可。

示例 & 源码介绍

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].