• Android-Broadcast(广播)


     
    1、四大组件之BroadcastReceiver
    (1)Broadcast(广播)--一种广泛运用在应用程序之间传输信息的机制
    (2)BroadcastReceiver(广播接受者)--是对发送过来的广播进行过滤接收并响应的一类组件,它就是用来接收来自系统和应用中的广播
    (3)用途:开机(或网络状态改变、或电池电量改变)时产生一条广播
    (4)大大的减少开发的工作量和开发周期
    (5)发送:把信息装入一个Intent对象(如Action、Category)
                      通过调用相应的方法将Intent对象以广播的形式发送出去【sendBroadcast( ),sendOrderBroadcast ( ).sendStickyBroadcast ( )】
    (6)接收:当intent发送以后,所有已经注册的BroadcastReceiver会检查注册时的intentFilter(注册器)是否与发送的intent相匹配,若匹配则就会调用BroadcastReceiver的onReceiver()方法。所以当我们定义一个BroadcastReceiver的时候,都需要实现onReceiver()方法。
    注意:BroadcastReceiver需要注册(静态注册、代码注册)
    (7)注意!
    ①BroadcastReceiver生命周期只有十秒左右
    ②在BroadcastReceiver里不能做一些比较耗时的操作
    ③应该通过发送intent给Service,由Service来完成
    ④不能使用子线程
    (8)广播的种类:普通广播(normal broadcast)、有序广播(优先级)、异步广播(粘滞性滞留广播)
    (9)添加优先级代码:<intent-filter     android:priority="100"> ..............</intent-filter >
    (10)截断广播方法:abortBroadcast( );
    (11)静态注册:在配置文件中注册
    (12)代码注册:IntentFilter intentFilter=new IntentFilter("BC_One"); 
                               BC2 bc2=new BC2( );
                               registerReceiver(bc2,intentFilter);
    (13)普通广播
    1、同级别的 动态加载优先级大于静态加载 (只在代码正常运行过程中,死掉了就不行)
    2、同级别的接收顺序随机(无序)
    3、接收器不能截断广播的连续性传播也不能处理广播
    4、优先级高的先于优先级低的
    (14)有序广播
    1、同级别的 动态加载优先级大于静态加载
    2、同级别的接收顺序随机(无序)
    3、接收器能截断广播的连续性传播,高级别的广播接收器收到广播之后,可以决定把该广播是否截断
    4、接收器能截断广播的连续性传播也能处理广播
  • 相关阅读:
    线段树学习笔记
    树状数组学习笔记
    P1816 忠诚 ST表模版
    NOIP 2017 D1T2 时间复杂度
    Ubuntu镜像源
    字符串数据结构模板
    白书的一些奇怪模板
    高精度模板
    大整数类模板
    线段树模板1
  • 原文地址:https://www.cnblogs.com/dendai-05/p/6945232.html
Copyright © 2020-2023  润新知