《Android应用开发基础Android应用开发基础 (16).pdf》由会员分享,可在线阅读,更多相关《Android应用开发基础Android应用开发基础 (16).pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 5.4 有序广播 本章内容本章内容 第第1节节 广播概述广播概述 第第2节节 广播工作原理广播工作原理 第第3节节 自定义广播自定义广播 第第4节节 有序广播有序广播 本章目标本章目标 理解理解Android广播的作用与分类。广播的作用与分类。能熟练开发广播接收器。能熟练开发广播接收器。理解理解Android广播的发送、接收器的注册原理。广播的发送、接收器的注册原理。理解有序广播的运用场合。理解有序广播的运用场合。理解有序广播与普通广播的区别。理解有序广播与普通广播的区别。5.4 Android有序广播有序广播 知识点预览知识点预览#知识点知识点 重点重点 难点难点 应用应用 说明说明 1
2、有序广播概述 讲解有序广播与标准广播的区别。2 接收有序广播 讲解如何接收有序广播。3 设置优先级 讲解如何为有序广播设置优先级。4 阻止向下传播 讲解如何阻止广播的向下传播。5 修改广播数据 讲解如何修改广播数据并向下传递。1 有序广播(Order Broadcast)广播发送方发送的广播会按特定次序特定次序依次传播给多个接收方。广播接收方的接收次序由android:priority属性控制。android:priority 的取值范围在:-1000到1000,相同优先级的接收器接收到广播的顺序随机。有序广播允许接收方修改广播数据,或者取消下级接收器的广播接收权利 例如:短信广播:SMS_R
3、ECEIVED_ACTION 5.4 Android有序广播有序广播 1 有序广播的作用 Android的短息广播就是一个典型的有序广播。Android系统在收到短信后会立刻发送一个广播,广播Action如下:android.provider.Telephony.SMS_RECEIVED 注意:该广播为系统隐藏的广播,无法通过帮助文件获取。有序广播最大的特点是,所有被注册的广播接收器必须严格按照android:priority 数值在ActivityManagerService的接收队列中按大小排列。5.4 Android有序广播有序广播 1 有序广播的作用 广播数据按顺序依次被传递给广播接收
4、器。任何应用都可以通过有序广播完成以下工作:广播接收器通过优先级依次获取广播。优先级高的广播接收器可以决定后续接收器是否能获取广播。优先级高的广播接收器可以修改广播数据,并将修改结果往下级传递。注意:如果priority一致,则随机选择前后次序 5.4 Android有序广播有序广播 想按手机黑名单拦截垃圾短信?想按手机黑名单拦截垃圾短信?合理使用有序广播就能办到,通过抢先接收,并阻止合理使用有序广播就能办到,通过抢先接收,并阻止Android短信收件箱获取短信短信收件箱获取短信,就能实现拦截垃圾短信的目的。,就能实现拦截垃圾短信的目的。5.4 Android有序广播有序广播 2 有序广播例子
5、有序广播例子 无序广播无序广播 有序广播有序广播 实例发送并接收自定义广播:实例发送并接收自定义广播:创建广播接收器接收广播。5.4 Android有序广播有序广播 public class public class MyReceiver extends extends BroadcastReceiver /定义广播名 public static public static String BROADCAST_TYPE1=cn.edu.sziit.broadcast.MY_BRODCASTcn.edu.sziit.broadcast.MY_BRODCAST;Override public voi
6、d public void onReceive(Context context,Intent intent)Toast.makeText(context,Receiver in Receiver in MyReceiverMyReceiver,Toast.LENGTH_SHORTLENGTH_SHORT).show();/收到广播消息后提示 abortBroadcast();/收到广播后丢弃 实例发送并接收自定义广播:实例发送并接收自定义广播:Activity动态注册接收器并接收广播。5.4 Android有序广播有序广播 在Activity中创建按钮,点击后发送广播。private void
7、 private void sendBroadcast()Intent intent=new new Intent(MyReceiver.BROADCAST_TYPE1);/定义广播意图 sendOrderedBroadcast(intent,nullnull);/发送有序广播 private private MyReceiver myReceivermyReceiver;/定义广播接收器 private void private void initData()myReceiver myReceiver=new new MyReceiver();/初始化广播接收器对象 IntentFilter
8、 filter=new new IntentFilter(MyReceiver.BROADCAST_TYPE1);/新建自定义广播过滤器 filter.setPriority(100);/设置广播接收器的优先级 supersuper.registerReceiver(myReceivermyReceiver,filter);/设置广播接收器接收自定义广播 5.4 Android有序广播有序广播 课后作业:离线广播消息原理课后作业:离线广播消息原理 5.4 Android有序广播有序广播 课后作业:登录广播课后作业:登录广播 登录界面登录界面 回退到登录界面回退到登录界面 主界面点击离线主界面点击离线 第13页/共15页 请完成登录广播截图提交 作答 正常使用主观题需2.0以上版本雨课堂 登录界面登录界面 回退到登录界面回退到登录界面 主界面点击离线主界面点击离线 主观题 10分