zoukankan      html  css  js  c++  java
  • 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、接收器能截断广播的连续性传播也能处理广播
  • 相关阅读:
    < java.util >-- Set接口
    Codeforces 627 A. XOR Equation (数学)
    Codeforces 161 B. Discounts (贪心)
    Codeforces 161 D. Distance in Tree (树dp)
    HDU 5534 Partial Tree (完全背包变形)
    HDU 5927 Auxiliary Set (dfs)
    Codeforces 27E. Number With The Given Amount Of Divisors (暴力)
    lght oj 1257
    Codeforces 219D. Choosing Capital for Treeland (树dp)
    Codeforces 479E. Riding in a Lift (dp + 前缀和优化)
  • 原文地址:https://www.cnblogs.com/dendai-05/p/6945232.html
Copyright © 2011-2022 走看看