码迷,mamicode.com
首页 > 其他好文 > 详细

BroadcastReceiver

时间:2016-04-10 10:24:15      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

今天来更深入的了解一下广播

使用广播需要注意:

1.BroadcastReceiver的生命周期只有十秒左右:

所以,不能再BroadcastReceiver中做比较耗时的操作,而且也不能使用子线程做耗时操作,因为有可能你还没做完它的生命周期已经到了,主线程被杀死了,当然子线程也会被终结,如果需要执行耗时操作,可以通过发送Intent给Service,由Service来完成

2.如果是动态注册的广播,一定要在不需要的时候销毁掉

,比如Activity的onDestroy()方法中销毁unregisterReceiver(receiver);

广播的种类:

普通广播(Normal broadcasts)

 所有监听该广播的广播接收者都可以监听到该广播。

有序广播(Ordered broadcasts)

 按照接收者的优先级接收广播,优先级别在intent-filter中的priority中声明,-1000-1000之间,值越大,优先级越高,可以终止广播意图的继续,接收者可以篡改内容

异步广播(粘滞性滞留广播)

当处理完之后的Intent,依然存在,这时候registerReceiver(BroadcastReceiver,IntentFilter)还能收到他值,直到你把它去掉,不能将处理结果传递给下一个接收者,无法终止广播

普通广播特点:

同级别接收先后是随机的(无序)

级别低的后收到广播

接收器不能截断广播的继续传递也不能处理广播

同级别动态注册高于静态注册

有序广播特点:

同级别接收顺序是随机的

能截断广播的继续传递,高级别的广播接收器收到该广播后,可以决定把该广播是否截断

接收器能截断广播的继续传播,也能处理广播

同级别动态注册高于静态注册

粘滞性滞留广播特点:

   不能将处理结果传递给下一个接收者,无法终止广播







BroadcastReceiver

标签:

原文地址:http://blog.csdn.net/wei_chong_chong/article/details/51107644

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