android发送无序广播,android成长日记 10.关于BroadcastReceiver的详细说明

广播看完了,而后回过头写一下,其实就是分为几种广播,安全

广播分为动态注册和静态注册,,,广播又分为系统广播和自定义广播, ....发送方式又分为,有序广播和无序广播....发送广播又分为直接send和利用localBroadcast.send两种,全部这里面的变化就有2*2*2*2种方式,我擦看着很简单的事情,一下出来这么多方式,函数

动态注册:就是你在Activity中注册,你须要一个BroadcastReceiver类的子类的实例和 一个intentFilter中添加了action(你想要的系统广播或者自定义广播字符.)这俩就是要做为参数  传给registerReceiver(BroadcastReceiver , intentfilter);  记住重写ondestroy函数啊.调用unregisterReceiver(BroadcastReceiver)函数,参数主要那个BroadcastReceiver的子类.spa

特色:Activity不启动这个广播就不会被接手,这就是动态的意思设计

静态注册: 就是在manifest文件中进行注册,添加一个Receiver,在里面添加Intentfilter,而后添加Action,而后定义name(选系统的就是系统广播,本身设计就是自定义广播get

静态注册的程序不用运行,在后台就会监听广播,it

系统广播和自定义广播就很少说了.惟一须要点明的事情就是:系统广播你是不用写触发逻辑的,由于系统在特定状况下就会发出,,,你只是一个接受者的姿态,(你只须要选择是静态注册仍是动态注册就好了),可是自定义广播,你必须本身发送广播才行,由于是自定义,嘿嘿.说道发送广播.就 引入下面的这一段io

发送广播方式:有序广播和无序广播ast

无序广播:就是默认的发送形式,你只需声明初始化一个intent("你的广播特征值");而后要使用sendBroadcast(intent);来发送就行了.后台

有序广播:就是程序在接受广播时候,是有优先级的,优先级高的程序先接受,你只须要在发送的时候调用sendOrderedBroadcast(intent)就好了,若是你想阻断广播咋办,只要在你想要的程序的Manifest文件中声明Intentfilter中设置Android:priority= 100(越高越早);就会优先到你的程序基础

.你在receive方法中最后调用abordBroadcast();方法广播就被阻断了.

针对自定义广播:在发送的时候能够选择广播类型

全局广播:就是默认的广播,全部程序均可以收到.发送的时候直接sendBroadcast();

本地广播:就是只有本程序本身能够收到广播,比较安全.须要使用LocalBroadcastManager.getinstance()得到LocalBroadcastManager()的实例而后调用.sendBroadcast();来发送:可是你注册的时候必须使用动态形式来注册,至于为啥你还用我跟你解释,表明你还不懂,由于只是你自定义本地广播,只能使用localBroadcastManager.registerBroadcast();才行;unregisterBroadcast来取消注册....

这就算所有基础内容了下边写个例子:

例子不写了郁闷啊,我发现了.静态注册自定义广播,不能设置弹窗,不然就只能弄一个透明的activity伪装弹窗.动态注册时没啥异常,就这样吧贴出链接吧

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值