代码改变世界

广播

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