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文件里面进行权限声明,和广播接收器注册。
- < !-- Needed to check when the network connection changes -->
- < uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
- < receiver android:name="you_package_name.ConnectionChangeReceiver" android:label="NetworkConnection">
- < intent-filter>
- < action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
- < /intent-filter>
- < /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);
相关推荐
通过注册BroadcastReceiver实时监听网络状态,实时更新当前Activity
Android断网时通知,基于BroadcastReceiver和service的实现,当网络发生变化时使用BroadcastReceiver和service通知用户, 调试时请下载mockable-android-23.jar类库到build\generated目录下。
android中定时有很多种是实现,常见的Handler 与Thread的结合,handler.postDelayed ,以及要使用的AlarmManger 等都可以实现定时任务的执行,但是使用场景却大不相同,这里主要是怎么用AlarmManager实现定时任务。...
一个简单的Android按键监听程序,通过通过BroadcastReceiver监听Home,电源Power,和音量变化Volume键
使用BroadcastReceiver监听网络状态 当网络连接或者断开会弹出Toast提示,同时System.out打印出连接信息 NetUtils中有四个方法可以检测网络是否连接、wifi是否连接、移动网络是否连接、连接类型
主要为大家详细介绍了Android使用BroadcastReceiver监听网络连接状态的改变,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
ANDROID-当网络发生变化时使用BroadcastReceiver和service通知 博客地址:http://blog.csdn.net/zhang58246500/article/details/51536350
包含在fragment中的应用
ANDROID---当网络发生变化时使用BroadcastReceiver和service通知 博客地址:http://blog.csdn.net/zhang58246500/article/details/51536350
android服务自启动Service以及BroadcastReceiver和Notification.zip
Android学习之BroadcastReceiver总结
前言:最近公司项目重构,为了提高用户的体验,项目中要求添加当前网络状态的实时监听,以便在无网络状态时给用户友好的提醒并修改UI界面。本文将介绍使用四大组件之一的BroadcastReceiver实现全局的网络状态监听,...
android service Notification BroadcastReceiver Intent 安装的服务开机自启动,service定时的打印消息,消息同时显示在通知栏,窗体界面的跳转,自定义控件的开发。系统广播,定时广播,轮询广播等。...
对应于博客中的例子: 有:定时任务,发送短信,状态栏通知,行车模式,夜间模式,唤醒锁,音量设置, 开机自启设置,拍照设置,等
安卓广播监听按键事件和屏幕熄屏亮屏监听,BroadcastReceiver使用
Android移动开发检测网络状态并使用BroadcastReceiver(广播接收者)进行接收网络变化的后续处理
一个结合了用service获得GPS信息,并用service将gps写入sqlite的gps表里,并用service通过broadcast发送经纬度信息给activity接收,activity通过BroadcastReceiver接收到service发送过来的经纬度信息后,在activity...
1、用service和broadcastReceiver来时时监听网络状态。 2、判断网络连接状态的方法(如mobile网络和wifi网络) 3、用广播WifiManager.NETWORK_STATE_CHANGED_ACTION和ConnectivityManager.CONNECTIVITY_ACTION都行,...
这是一个关于Android中四大组件之一 —— BroadcastReceiver,即广播的一个demo,里面涉及到BroadcastReceiver的两种注册方式,也简单的实现了广播,通过点击按钮发送广播,收到广播后打印日志。
Android BroadcastReceiver