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

    }
  • 相关阅读:
    iBatis.Net(2):基本概念与配置
    iBatis.Net(4):DataMapper API
    iBaits.Net(1):简介与安装
    在YII项目中使用ckeditor和ckfinder快速部署文本编辑器并实现图片上传
    iBatis.Net(6):Data Map(深入)
    基于.net mvc的校友录(开篇)
    Ubuntu下建立tftp服务+我安装过程出现的问题
    2013年了,今年我将毕业
    路由器系统的内存储布局
    基于.net mvc的校友录(一、前台需求设计)
  • 原文地址:https://www.cnblogs.com/adamli/p/13140660.html
Copyright © 2011-2022 走看看