静态注册广播检查网络状态

2015-11-18 17:24 阅读 7,647 次 评论 3 条

为了区分广播注册的两种方式,特地写了一个静态广播的例子,监听应用程序网络状态,当前无网络的时候,在应用程序窗口提示信息“当前网络不可用,请检查网络是否已经连接..”,否则不提示,运行效果图:
静态广播检查网络状态

开发步骤:

一、编写NetStateUtil类,检查网络状态

二、编写广播接收器ConnectionChangeReceiver

三、在AndroidManifest.xml注册广播

四、编写MainActivity,在onResume方法中发送广播

五、效果演示

1、编写NetStateUtil类,检查网络状态

在NetStateUtil类中,写一个static的方法isNetworkAvailable,方法检查当前手机网络状态,无网络状态返回false,否则返回true,代码如下:
[java]
public class NestStateUtil {

/**
* 检测当前网络是否连接可用
*
*
* @return true|false
*/
public static boolean isNetworkAvailable(Context context) {

ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
}

[/java]

2、编写广播接收器ConnectionChangeReceiver

ConnectionChangeReceiver类基础BroadcastReceiver,并重写onReceive方法,并在方法中监听当前应用网络情况,无网络提示状态信息,代码如下:
[java]
public class ConnectionChangeReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent arg1) {
if(!NestStateUtil .isNetworkAvailable(context)){
Toast.makeText(context, "当前网络不可用,请检查网络是否已经连接..", Toast.LENGTH_LONG).show();
}

}

}
[/java]

3、在AndroidManifest.xml注册广播

静态注册和动态注册的区别,可以移步到《Android广播注册两者方式》查看,在AndroidManifest.xml注册代码如下:
[code]
<receiver
android:name="cn.teachcourse.receiver.ConnectionChangeReceiver"
android:exported="false" >
<intent-filter>
<action android:name="cn.teachcourse.receiver.connectionChangeReceiver" />
</intent-filter>
</receiver>
[/code]

4、编写MainActivity,在onResume方法中发送广播

在MainActivity中的OnResume方法中发送广播信息,布局界面根据自己情况,稍微写一个简单的就可以,发送广播代码如下:
[java]
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Intent intentNet = new Intent();
String netAction="cn.teachcourse.receiver.connectionChangeReceiver";
intentNet.setAction(netAction);
sendBroadcast(intentNet);
}
[/java]

5、添加权限

在访问网络状态的时候需要添加访问权限,连接网络需要添加,将下面代码复制到AndroidManifest.xml中即可,如下:
[code]
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
[/code]

6、效果演示

代码编写完成后,测试效果图:
静态广播检查网络状态

你可能感兴趣的文章

来源:TeachCourse每周一次,深入学习Android教程,关注(QQ158#9359$239或公众号TeachCourse)
转载请注明出处: https://www.teachcourse.cn/820.html ,谢谢支持!

资源分享

Android学习笔记一:Java类加载过程 Android学习笔记一:Java类加载
Android事件分发流程分析测试(2) Android事件分发流程分析测试(
你会错过的接口理解三部曲:定义,设置和实现 你会错过的接口理解三部曲:定义
WebView加载HTML5视频退出后无法停止播放问题解决办法 WebView加载HTML5视频退出