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;
    }

    }
  • 相关阅读:
    CEO良言:创业就请在29岁前做富翁
    在酒桌上看出她是哪种女人!
    巴菲特的人生财富课
    曹操的领导力:羊群变狮群(领导艺术终极体现)
    商业模式木桶短板原理与长板原理
    这三种力量,让你的人生从此大不一样……
    都市男女的30句妙语叹息
    郎咸平:诸葛亮是一名优秀的企业家吗?
    做小生意,解决生活中的问题:创业路上的成功感悟
    100个成功经验(价格不菲的培训课程笔记摘要)
  • 原文地址:https://www.cnblogs.com/adamli/p/13140660.html
Copyright © 2011-2022 走看看