zoukankan      html  css  js  c++  java
  • NetChangeReceiver

    package com.android.demo.lileidemo.listener;

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.os.Handler;
    import android.os.HandlerThread;

    import com.android.demo.lileidemo.MyApplication;
    import com.android.demo.lileidemo.constant.AppConstants;
    import com.android.demo.lileidemo.utils.ActivityUtil;

    /**
    * date: 03/27/2020.
    * author: lilei.
    */
    public class NetChangeReceiver extends BroadcastReceiver{
    private static final String TAG = AppConstants.APP_TAG + "NetChangeReceiver ";
    private HandlerThread mHandlerThread = new HandlerThread("NetChangeReceiver");
    private Handler mWorker;
    private static volatile NetChangeReceiver mInstance;
    private static boolean lastCheckNetConnected = true;//last net disconnect check net connect state.
    private static long lastCheckMillis = 0; //last net disconnect time millis.

    public NetChangeReceiver() {
    mHandlerThread.start();
    mWorker = new Handler(mHandlerThread.getLooper());
    }

    /**
    * get Instance.
    *
    * @return instance.
    */
    public static NetChangeReceiver getInstance() {
    if (mInstance == null) {
    synchronized (NetChangeReceiver.class) {
    if (mInstance == null) {
    mInstance = new NetChangeReceiver();
    }
    }
    }
    return mInstance;
    }

    public void registerIviStateChangeListener() {
    //LogUtil.d(TAG + "registerIviStateChangeListener()");
    }

    @Override
    public void onReceive(Context context, Intent intent) {
    if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {
    NetworkInfo info = intent
    .getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
    if (info == null) {
    return;
    }

    if (NetworkInfo.State.CONNECTED == info.getState() && info.isAvailable()) {
    if (info.getType() == ConnectivityManager.TYPE_WIFI
    || info.getType() == ConnectivityManager.TYPE_MOBILE) {
    // LogUtil.d(TAG + "onReceive() 111 " + getConnectionType(info.getType())
    // + " connected");
    doNetConnectCollectData(info.getType());
    }
    } else if (NetworkInfo.State.DISCONNECTED == info.getState() && info.isAvailable()) {
    if (info.getType() == ConnectivityManager.TYPE_WIFI
    || info.getType() == ConnectivityManager.TYPE_MOBILE) {
    // LogUtil.d(TAG + "onReceive() 222 " + getConnectionType(info.getType())
    // + " disconnected");
    doNetDisconnectCollectData(info.getType());
    }
    }
    }

    }

    private void doNetConnectCollectData(int netType) {
    boolean isNetworkConnected = ActivityUtil.isNetworkConnected(
    MyApplication.getAppContext());
    // LogUtil.d(TAG + "doNetConnectCollectData() isNetworkConnected:" + isNetworkConnected
    // + " lastCheckNetConnected:" + lastCheckNetConnected + " lastCheckMillis:" + lastCheckMillis);
    }

    private void doNetDisconnectCollectData(int netType) {
    // LogUtil.d(TAG + "doNetDisconnectCollectData() 11");
    }

    private String getConnectionType(int type) {
    String connType = "";
    if (type == ConnectivityManager.TYPE_MOBILE) {
    connType = "Mobile network";
    } else if (type == ConnectivityManager.TYPE_WIFI) {
    connType = "WIFI network";
    }
    return connType;
    }

    }
  • 相关阅读:
    js下载doxc 文件示例和部分后缀对应的content-type 总结
    使用react-app-rewired和customize-cra对默认webpack自定义配置
    koa2使用es7 的装饰器decorator
    vue history 模式打包部署在域名的二级目录的配置指南
    linux 安装 node 环境
    javascript 正则表达式之分组与前瞻匹配详解
    vue的$emit 与$on父子组件与兄弟组件的之间通信
    mysql 的基本操作总结--增删改查
    mysql 常用的时间日期函数小结
    小程序封装request请求,统一API
  • 原文地址:https://www.cnblogs.com/adamli/p/13140660.html
Copyright © 2011-2022 走看看