移动开发主要组件-广播

1.静态注册:在文件清单中注册广播接收者
动态注册:新建一个类,继承自BroadcastReceiver
静态注册:常驻,不受任何组件的生命周期影响.应用程序关闭后,若有广播来,程序依旧会被系统调用.缺点是耗电,占内存.场景:需要时刻监听广播.
动态注册:非常驻,灵活,跟随组件的生命周期变化.场景:需要特定时刻监听广播.
2.自定义广播:把信息装入一个intent对象(如action、category),通过调用sendBroadcast()将intent对象以广播方式发送.发送后,所有已注册的广播接收者会检查注册时的Intentfilter是否与发送的intent匹配,若匹配就会调用广播接收者的onReceive方法.
(1)广播发送:Intent intent=new Intent(); intent.setAction( "forget"); intent.putExtra("forget", "hello"); sendBroadcast(intent);
(2)广播接收

my=new MyReceiver();

string action="forget";

intentfilter filter=new Intentfilter(action); register Receiver(my,filter);
(3)当使用系统广播时,只需要在注册时定义相关的action即可,不用手动发送广播,当系统有相关操作时会自动进行系统广播.

3.无序广播:完全异步执行.发送广播时所有监听这个广播的广播接收者都会收到,但接收的顺序不确定
4.有序广播:按接收者的优先级接收,只有一个接收者能接收消息,在此接收者中逻辑执行完后,才会继续传递.
IntentFilter filter=new IntentFilter();

filter.setPriority(100);

数越大,优先级越高,若优先级相同,先注册的接收者优先级高.

sendOrderedBroadcast();

 

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值