我们在Android应用开发中有时必须实时监听这个程序的实时网络状态,还好Android在网络断开与连接时都会发送系统广播,我们通过接收系统的广播就可以实现网络的实时监听。

1.定义一个名为MyBroadcastReceiver的广播接收器并且实现BroadcastReceiver,重载 onReceive()函数,并在里面对网络状态进行判断:

package com.broadcast;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.net.ConnectivityManager;import android.net.NetworkInfo;public class MyBroadcastReceiver extends BroadcastReceiver {private SharedPreferences shared = null;private int flag = -1;@Overridepublic void onReceive(Context context, Intent intent) {// 获得网络连接服务ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);// 判断是否正在使用GPRS网络NetworkInfo mobileNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);// 判断是否正在使用WIFI网络NetworkInfo wifiNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);if (!mobileNetInfo.isConnected() && !wifiNetInfo.isConnected()) {flag = 0;} else {flag = 1;}System.out.println("--当前网络状态--flag--:" + flag);shared = context.getSharedPreferences("UserInfo", 0);Editor editor = shared.edit();editor.putInt("network", flag);editor.commit();}}

2.在合适的地方注册MyBroadcastReceiver,在onCreate()中调用如下函数进行广播的注册(动态注册):

/** * 注册广播 */private void registerReceiver() {// 注册广播接收器IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);MyBroadcastReceiver receiver = new MyBroadcastReceiver();registerReceiver(receiver, filter);}

3.记得加权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>    <uses-permission android:name="android.permission.INTERNET" />

更多相关文章

  1. Android异步加载获取网络数据(图片)
  2. 如何高效的用 Linux 命令行管理网络?
  3. Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影
  4. Android(安卓)实现联网(二)——java.net漫游
  5. Android广播和广播接收者
  6. Broadcast监听网络状态,ping判断网络是否可用
  7. Android客户端消息推送原理简介
  8. Android之Wifi学习(2)------连接Wifi
  9. Android初级教程理论知识(第六章广播接受者)

随机推荐

  1. android之4.0的系统主题style修改android
  2. android:gravity
  3. Android渗透测试虚拟机环境(VM)—AppUse
  4. 设置textview的字体
  5. Android Theme的设置
  6. Android——兼容性
  7. android充当server服务器
  8. Android(安卓)Audio代码分析26 - Audio S
  9. Android 图表开源框架之MPAndroidChart L
  10. Android小技巧/ImageView src与backgroun