版权声明:本文为HaiyuKing原创文章,转载请注明出处!
前言
用来监控网络变化时的处理,一般用来toast提示或者扩展为其他作用。
效果图
代码分析
NetStateReceiver:网络改变时的广播器
NetUtils:获取网络类型
使用步骤
一、项目组织结构图
注意事项:
1、导入类文件后需要change包名以及重新import R文件路径
2、Values目录下的文件(strings.xml、dimens.xml、colors.xml等),如果项目中存在,则复制里面的内容,不要整个覆盖
二、导入步骤
将netstatus包复制到项目中
在AndroidManifest.xml文件中声明权限以及静态注册NetStateReceiver【注意,路径需要跟实际项目的路径保持一致】
在BaseActivity.java中添加以下代码
package com.why.project.netstatereceiverdemo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import com.why.project.netstatereceiverdemo.utils.ToastUtil;import com.why.project.netstatereceiverdemo.utils.netstatus.NetChangeObserver;import com.why.project.netstatereceiverdemo.utils.netstatus.NetStateReceiver;import com.why.project.netstatereceiverdemo.utils.netstatus.NetUtils;/** * Created by HaiyuKing * Used Activity基类 */public abstract class BaseActivity extends AppCompatActivity { private static final String TAG = "BaseActivity"; /*=================网络变化的广播器=====================*/ protected NetChangeObserver mNetChangeObserver; @Override protected void onCreate(Bundle savedInstanceState) { /*=================网络变化的广播器=====================*/ registerNetStateChange();//注册网络变化的广播器 super.onCreate(savedInstanceState); } protected void onDestroy() { super.onDestroy(); /*=================网络变化的广播器=====================*/ NetStateReceiver.removeRegisterObserver(this.mNetChangeObserver); } /*==========网络变化的广播器=============*/ private void registerNetStateChange() { if (this.mNetChangeObserver == null) { this.mNetChangeObserver = new NetChangeObserver() { public void onNetConnected(NetUtils.NetType netType) { super.onNetConnected(netType); onNetworkConnected(netType); if (NetUtils.isMobileConnected(getApplicationContext())){ ToastUtil.showShortToast("您当前正在使用运营商网络"); } if(NetUtils.isWifiConnected(getApplicationContext())){ ToastUtil.showShortToast("您当前正在使用无线网络"); } } public void onNetDisConnect() { super.onNetDisConnect(); onNetworkDisConnected(); ToastUtil.showShortToast("网络无法连接,请检查网络设置"); } }; NetStateReceiver.registerObserver(this.mNetChangeObserver);// 声明mNetChangeObserver注册到网络状态广播接收器中 } } protected abstract void onNetworkConnected(NetUtils.NetType netType); protected abstract void onNetworkDisConnected();}
本Demo搭配《》使用
三、使用方法
package com.why.project.netstatereceiverdemo;import android.os.Bundle;import com.why.project.netstatereceiverdemo.utils.netstatus.NetUtils;public class MainActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override protected void onNetworkConnected(NetUtils.NetType netType) { } @Override protected void onNetworkDisConnected() { }}
混淆配置
无