码迷,mamicode.com
首页 > 移动开发 > 详细

详解广播机制,Broadcast Receiver,Android进阶必备知识(二)。

时间:2016-05-18 00:07:40      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

  唉···昨天写的博客,被博客园管理组嫌弃了。。。伤心!

  昨天就谢了广播的基本用法,今天就往深里扒扒,明天继续写关于广播的博客。

  昨天说的多是关于系统广播的接收,也是系统广播的接收,现在说说自定义广播的用法。先说标准广播的,拿昨天静态注册那个例子来说。其他地方都一样知识把清单文件里面的action给替换为我们自己定义的action就行了。

<receiver android:name=".BootCompleteReceiver">
            <intent-filter>
                <action android:name="com.example.broadcasttest.MY_BROADCAST" />
            </intent-filter>
        </receiver>

昨天这个例子是监听启动广播,现在我们让他监听我们自己定义的一个广播,只有监听不行,还需要有发送才行,下面写下广播是如何发送的。

Intent it = new Intent("com.example.broadcasttest.MY_BROADCAST"); 
sendBroadcast(it);

OK,这就是一个完整的自定义的广播了,这边用Intent去发送,那边的接收器就会有反映。都知道广播除了标准广播外还有一个有序广播,但是他们区别在哪里呢?那就是发送的方式不一样,刚才发送是用的:

sendBroadcast(it);


而有序广播用的是:sendOrderdBroadcast(it,null);
这就是区别!在这个方法里面有两个参数,第一个参数自不必说,第二个是一个与权限相关的字符串。
既然是有序广播,那么有序广播的接受者们必须需要排个优先级别了,那么他们是怎么排序的呢?也很简单,就是在清单文件中注册的时候在intent-filter中使用 android:priority = "100"这个属性来排序,数值越大优先级越高。

当然既然了,有序广播是可以被截断的。使用abortBroadcast();方法,在你需要截断的时候调用就ixng了,不调用说明你不需要截断它,他会按照优先级一个一个的传递下去,知道没有人来接受它。


好了,就写这么多吧,不想用博客园了,用了不到一周,真难受。看来要转移阵地了。

详解广播机制,Broadcast Receiver,Android进阶必备知识(二)。

标签:

原文地址:http://www.cnblogs.com/fuyangyang/p/5503710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!