广播
2017-07-13 15:10 烈'焰 阅读(181) 评论(0) 编辑 收藏 举报
1.首先写一个类继承广播BroadcastReceiver,在里面重写onRecrive()方法
2.在onCreate()方法中写一个IntentFilter实例,并且给它添加一条我们所要接收广播的类型。例如我们添加网络广播需要添加 android.net.conn.CONNECTIVITY_CHANGE这条广播
IntentFilter intentFilter=new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
3,。接下来我们需要添加我们创建的类实例
new 我们创建的类.
4.用registerReceiver()注册广播,并且将类和IntentFilter实例传入。
5.判断有没有网络,在onRecrive()方法中通过getSystemService()方法得到ConnectivityManager
实例,在通过实例调用getActiveNetworkInfo()方法,得到NetworkInfo实例
if(networkInfo!=null&&networkInfo.isAvailable()) 这一句判断有没有网络
注意:记得加联网权限
====================================================================================
有序广播:
1.首先定义一个类继承BroadcastReceive 重写onReceive()方法:
2.在清单文件中添加
其中name为自定义广播;priority 为广播的先后顺序。参数越高优先级越高。
如果利用sendOrderBroadcast()方法发送广播,它可以中断广播,此方法需要传入两个参数,第一个为initent,第二个为与权限有关的字符串,这里传入null就可以。
在优先级高的类中加入abortBroadcast()方法后,只要优先级比此方法低,那么以后的方法都不会执行。
==================================================================================
本地广播
1.首先使用LocakBroadcastManager调用getInstance()的到实例;
2.定义一个本地广播的类
3,通过IntentFilter的到传输广播的类型、
4.注册广播监听 通过LocakBroadcastManager
调用registerReceive(),这里面两个参数一个为我们定义的类,另一个为IntentFilter
5.在点击按钮中用LocakBroadcastManager
调用发送广播
------------------------------------------------------------------------------------------------------
1.inFil 2.add 3.new 4,监听 re