发送有序广播

目录

广播类型的介绍

实战——发送有序广播

item(.xml)

java代码

效果展示


广播类型的介绍

1.无序广播(收到的顺序不一定)

2.有序广播(有先后顺序,并且可被拦截)

广播接收者优先级:通过setPriority()方法设置优先级,例如这里我们这次使用的intentFilter.setPriority(?),其中数值越大优先级越高

  1. 实战——发送有序广播

  2. item(.xml)

  1. java代码

让我们先看一下总代码

基本可以看出来,一个广播接收者是五条代码,大家尽力记下来

而这里的intentFilter.setPriority(?)10>6>2,我们就能知道广播收到的顺序是2→3→1

现在让我们了解一下,如,第一行的one我们可以从上面那一张照片看见它关联的是MyReceiver,就是大家Java代码中的MyReceiver one=new  MyReceiver();也就是实例化MyReceiver 对象

这里就会有同学问,那么intent、<intent-filter...>和intentfilter有什么最本质的区别吗?(如果没有那就当我没说

调用我们先区分显式和隐式(intent有两种:显式和隐式)

显式是应用与特定组件(知道他的名字),隐式内外组件都可以用

举个简单得栗子,有些女生和父母说自己找对象的意图

显示:我要找像哥哥我一样的男孩子(基本上告诉了父母,自己喜欢谁)

隐式:我要找“21岁”、“写博客”、“美少年”做男朋友,至于是谁就不知道了(●'◡'●),只要符合这三条要求的都可以

至于怎么样要不然下面有链接,要不然百度,要不然就等着吧(有空我在写)


intent到底是什么

在Android中有四大组件,这些组件中有三个组件与Intent相关

Intent可以携带数据,传递给Activity/Service/BroadcastReceiver。

Intent能够包含的属性有Component、Action、Data、Category、Extras、Flags

现在我们关联一下intentfilter

Intent的Action、Category属性的值其实是普通的字符串,而Action是Intent要完成的抽象动作,Category是Action增加的附属信息,他们两个一般结合使用

Action:Intent.ACTION_VIEW他其实只能抽象的查看操作,具体操作谁他不知道,而这就取决于<intent-filter...>这里简单的说一下,<intent-filter...>是.xml中的,并且不是“硬编程”

看一下这个,我们知道跳转页面从哪到哪,而运用<intent-filter...>就变成

Intent intent=new Intent();
intent.setAction(MainActivity.CRAZYIT_ACTION);
startActivity(intent);

 这样我们就不知道它跳到那个页面了,它是通过<intent-filter...>中的<service.../>、<receive.../>来响应Intent的

细心的同学也会发现这里也有

还行了解更深的Intent以及IntentFilter详解_王三的猫阿德的博客-CSDN博客_intentfilter

 

最后是前不久(也就几个小时前)发表的自定义广播说的销毁

现在让我们看看三个广播接收者吧!

呵呵孪生三胞胎

现在让我们来看一下效果图

啊,怎么会和分析的效果不一样啊!!!

原来是发错图了

惊不惊喜,意不意外

接下来我们来补充扩展一下

添加拦截广播

有的同学说如果优先级一样会不会同时接受,答案是:不会,因为系统会更加你定义代码的顺序来判断,也就是说接受顺序的因素1.优先级2.你的代码实现

聪明的孩子看到这个就会知道,我们已经开始让系统拦截广播了

实现代码如下:

那现在让我们在它拦截之后再次接受一个三号广播接收者的吧

对比之前我们多了最后两条代码

这是我在网上找的,一定要这样写,写全了不是只写空里前三个就可以了

这就是最后的效果

如果在操作过程中有什么问题可以私聊我,那么幸会,有缘再见

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值