Android网络应用程序开发中,经常要判断网络连接是否可用,因此经常有必要监听网络状态的变化。

Android的网络状态监听可以用BroadcastReceiver来接收网络状态改变的广播,具体实现如下:

/** * ConnectionChangeReceiver *  * @author benny Yang on 2011-12-23 * */public class ConnectionChangeReceiver extends BroadcastReceiver {    private static final String TAG =ConnectionChangeReceiver.class.getSimpleName();        @Override     public void onReceive(Context context, Intent intent) {     Log.e(TAG, "网络状态改变");     boolean success = false;     //获得网络连接服务     ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);     // State state = connManager.getActiveNetworkInfo().getState();     // 获取WIFI网络连接状态    State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();     // 判断是否正在使用WIFI网络     if (State.CONNECTED == state) {    success = true;     }     // 获取GPRS网络连接状态     state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();    // 判断是否正在使用GPRS网络     if (State.CONNECTED == state){     success = true;     }     if (!success) {     Toast.makeText(context, context.getString(R.string.your_network_has_disconnected), Toast.LENGTH_LONG).show();     }      }

记得在Manifest文件里面进行权限声明,和广播接收器注册。

  1. !-- Needed to check when the network connection changes -->   
  2. uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>   
  3. receiver android:name="you_package_name.ConnectionChangeReceiver"   android:label="NetworkConnection">   
  4. intent-filter>   
  5.       < action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>   
  6. /intent-filter>   
  7. /receiver> 

使用方式一:

1. 在Activity的onCreate中:
//注册网络监听 
IntentFilter filter = new IntentFilter();  
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); 
registerReceiver(mNetworkStateReceiver, filter); 
2. 在Activity中的onDestroy中:
//取消监听
unregisterReceiver(mNetworkStateReceiver); 


使用方式二:

1. 应用启动时,启动Service,在Service的onCreate方法中注册网络监听:

//注册网络监听 
IntentFilter filter = new IntentFilter();  
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); 
registerReceiver(mNetworkStateReceiver, filter); 

2. 应用退出时,Service关闭,在Service的onDestroy方法中取消监听:
//取消监听
unregisterReceiver(mNetworkStateReceiver); 


更多相关文章

  1. Android发送数据到web服务器4种方式
  2. android 设置进入全屏,取消全屏的几种方式
  3. Android HttpClient网络编程
  4. 2011.09.15 ——— android 桌面添加快捷方式之判断是否存在无效
  5. Android实现网络图片查看器和网页源码查看器
  6. Android 网络连接处理 学习笔记
  7. android 如何实现EditText从不可编辑状态变成可变成可编辑状态
  8. android如何判断服务是否正在运行状态
  9. android 状态栏提醒 Notification 的使用!

随机推荐

  1. Android(安卓)RelativeLayout 属性大全
  2. android 电容屏(一):电容屏基本原理篇
  3. android ndk 开发之 在 应用程序中使用 j
  4. Android(安卓)Studio:AndroidX的迁移
  5. android app模拟 persistent 属性可以保
  6. 关于安装Android(安卓)Studio的一些问题
  7. 【译】Android开发指南(1)--什么是Androi
  8. 怎样做出一个dialog样式的activity
  9. android控件的对齐方式(转)
  10. Android(安卓)Design 4.4中文版发布