动态注册广播
来源:互联网 发布:红帽子linux下载 编辑:程序博客网 时间:2024/05/21 06:13
广播分为有序广播(Ordered brodcasts)和无序广播(Normal broadcasts)
有序广播是一种同步执行的广播,在同一时间段,只有一个广播发出,只有等这个广播执行完,才会发向下一个广播,这种广播可以截断
无序广播时默认广播,是一种异步执行的操作,广播发出后,无法截断。
广播接收器有两种注册方式,一种是在AndroidMainfest里面注册和代码里面注册,前者被称为静态注册,后者成为动态注册
那么如何创建一个广播接收器呢?其实只需要创建一个类,然后继承Broadcast Receive然后重写onReceive()方法就可以啦,当有广播到来时,onReceive()方法会自动调用
动态注册广播:
一:创建一个IntentFilter对象。
二:使用IntentFilter对象的setAction方法添加一个监听对象(intentFilter.setAction("android.net.conn.CONNECTIVITY_CHANGE"));
三:创建一个类,继承BroadcastReceiver类,实现里面的Onreceive方法();在Onreceive方法里面通过getSystemService(Context.CONNECTIVITY_SERVICE);获取到ConnectivityManager对象;调用ConnectivityManager里面的getActiveNetworkInfo()方法获取到NetWorkInfo对象,判断netWorkInfo对象是否为非空&&info.isAvailable()
那么为有网络,反之为没有网络。
四:使用registerReceiver(Broadcastreceiver,intentFilter)实现这个广播接收
五:在onDestroy里面使用unregisterReceiver结束当前广播(unregisterReceiver)
六:在清单文件中加入android.permission.ACCESS_NETWORK_STATE权限,用于查询是否有网络
代码:
public class MainActivity extends Activity { private IntentFilter intentFilter; Broadcasts broadcast; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intentFilter = new IntentFilter();// 监听网络变化 intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); broadcast = new Broadcasts();// 注册广播 registerReceiver(broadcast, intentFilter); } protected void onDestroy() { super.onDestroy(); unregisterReceiver(broadcast); } class Broadcasts extends BroadcastReceiver { public void onReceive(Context arg0, Intent arg1) { ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = manager.getActiveNetworkInfo(); if(info !=null && info.isAvailable()) { Toast.makeText(MainActivity.this, "有网络", 0).show(); } else { Toast.makeText(MainActivity.this, "木有网络", 0).show(); } } }}
- android 动态注册广播
- android动态注册广播
- 广播接收器动态注册
- 动态注册广播接收器
- 动态注册广播接收者
- Android动态注册广播
- 动态注册监听广播
- 动态注册广播
- 动态注册广播
- 动态注册的广播
- Android-动态注册广播和注销广播
- myapplication991静态广播注册和动态广播
- 【Android】动态注册广播接收器
- 【Android】动态注册广播接收器
- 【Android】动态注册广播接收器
- android动态注册广播接收器
- Android动态注册广播接收器
- Android动态注册监听广播
- 自动刷新"徐小明"股市直播内容
- ubuntu 源码安装nodejs
- NOIP2013普及组 题解
- 网络编程--观察者模式
- 百度地图-根据起终点经纬度驾车导航
- 动态注册广播
- iOS --- UIcollectionView设置头尾
- 搭建Embedded Linux kernel环境--在QEMU上运行ARM linux系统
- 给 Android 开发者的 RxJava 详解
- 算法导论习题:10.2-7 in Go语言
- iOS ---UICollectionView简单使用
- UVa 11292 Dragon of Loowater
- mac 下安装wget
- R文件丢失