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. <!--Neededtocheckwhenthenetworkconnectionchanges-->
  2. <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
  3. <receiverandroid:name="you_package_name.ConnectionChangeReceiver" android:label="NetworkConnection">
  4. <intent-filter>
  5. <actionandroid: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电源管理简要
  2. android 短信监听
  3. Android控制手电筒代码,简单易用,不需要任何权限
  4. android 网络编程
  5. Android(安卓)EditText 监听回车键
  6. Android(安卓)Input输入系统之一:KeyEvent事件监听
  7. android6.0 状态栏添加图标 举例Location
  8. Android的生命周期 Start onResume
  9. Android:如何显示网络图片

随机推荐

  1. android中自定义ListView界面
  2. Android在网页下(WebView中运用HTML)点击
  3. Android(安卓)激活Deviceadmin,并进行锁
  4. [App Bundle]Android动态化技术实例
  5. android SQLite 批量插入数据慢的解决方
  6. Android系统篇(二)——Android编译核心Bu
  7. Android开发者确保应用程序运行的四大组
  8. Android(安卓)SQLite学习
  9. 详解Android系统如何找到最匹配的资源文
  10. Android面试题目收集