您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 第7章AndroidBroadcastReceiver组件
Page27.1Broadcast及BroadcastReceiver概述7.2自定义BroadcastReceiver7.3有序广播7.4接收系统内置广播事件7.5使用Notification和NotificationManager通知用户7.6闹钟AlarmManagerPage3发送广播sendBroadcast(intent)接收广播。四喜丸子之一---广播接收者BroadcastReceiver。◦类似于事件处理。不过事件处理是同一个程序内部,而广播的处理机制则是系统级别的(可用于不同应用程序之间)。◦实现方式为:写个类继承BroadcastReceiver,覆盖方法onReceive()在配置文件中配置Page4要发送广播给广播接收者,同样需要信使Intent。系统内置了一些与广播接收者有关的IntentAction◦android.provider.Telephony.SMS_RECEIVED◦Intent.ACTION_TIME_CHANGED(时间改变时)◦Intent.ACTION_BOOT_COMPLETED(系统启动完成时)◦Intent.ACTION_PACKAGE_ADDED(添加包时—即安装程序)android中使用package来区分不同的应用程序◦Intent.ACTION_BATTERY_CHANGED(电量低时)Page57.1Broadcast及BroadcastReceiver概述7.2自定义BroadcastReceiver7.3有序广播7.4接收系统内置广播事件7.5使用Notification和NotificationManager通知用户7.6闹钟AlarmManagerPage6书上实例不好。没有体现出在不同应用程序之间发送广播和接收广播。实例:Page7在第一个Android项目中,发送广播Page8在第二个Android项目中,接收广播Page9实例注意事项◦将SelfBroadcastA项目和SelfBroadcastB项目部署在模拟器上◦运行SelfBroadcastA项目◦SelfBroadcastA执行发送广播命令Page10实例注意事项◦两个项目都需要安装到Android系统中,才能看到效果◦两个项目的包名不能一样,否则后安装的那个将覆盖掉前面那个。(Android用包来区分应用程序)Page11Page127.1Broadcast及BroadcastReceiver概述7.2自定义BroadcastReceiver7.3有序广播7.4接收系统内置广播事件7.5使用Notification和NotificationManager通知用户7.6闹钟AlarmManagerPage13Broadcast被分为如下两种:◦NormalBroadcast(普通广播)◦OrderedBroadcast(有序广播)Context提供如下两个方法发送广播◦sendBroadcast()◦sendOrderedBroadcast()Page14项目实例演示◦SortedBroadcast课堂编程实现Page157.1Broadcast及BroadcastReceiver概述7.2自定义BroadcastReceiver7.3有序广播7.4接收系统内置广播事件7.5使用Notification和NotificationManager通知用户7.6闹钟AlarmManagerPage16除了可以自定义广播事件之外,Android还提供了许多标准的广播Action。这些广播由系统在某种情形下自动发出,程序员只需要定义BroadcastReceiver进行接收即可。Page17系统内置广播Action常量常量名称含义ACTION_BOOT_COMPLEMENTED系统启动完成时(开机)ACTION_TIME_CHANGED系统时间改变ACTION_DATE_CHANGED日期改变ACTION_BATERY_LOW电量低…..添加包卸载包…..Page18实例(Sysbroadcast)--设置系统时间,自定义广播接收者来接收时间被改变事件。Page19实例--设置系统时间,自定义广播接收者来接收时间被改变事件。注册BroadcastReceiverPage20实例--设置系统时间,自定义广播接收者来接收时间被改变事件。Page21实例--SMSBroadcast。Page227.1Broadcast及BroadcastReceiver概述7.2自定义BroadcastReceiver7.3有序广播7.4接收系统内置广播事件7.5使用Notification和NotificationManager通知用户7.6闹钟AlarmManagerPage23广播接收者收到广播之后,如何获取用户的注意(通知用户)?简单的Toast.makeText().show()并不行..例如:手机电量不足,如何接收了该广播之后,来提示用户呢?应该闪光、发声、振动等..此时最好的选择是使用通知Notification和通知管理者NotificationManagerPage24Page25项目实例1演示◦Notification1代码分析,使用Notificaiton发送通知的步骤:◦调用getSystemService(NOTIFICATION_SERVICE)获取系统的NotificationManager◦通过构造器创建一个Notificaiton对象◦为Notificaiton设置各种属性◦通过NotificationManager发送NotificaitonPage26由于使用Notification和NotificationManager是做可视化操作,一般需要在Activity中写代码。涉及知识:◦Intent和PendingIntent:Intent是你的意图,比如你想启动一个Activity,就会通过Intent来描述启动这个Activity的某些特点,让系统找到这个Activity来启动,而不是启动别的。Activity.StartActivity(intent)就会立即启动这个ActivityPendingIntent呢?Penging中文意思就是:待定,将来发生或来临。PendingIntent不像Intent那样立即发生,而是在合适的时候由另外的程序去触发所包装的Intent。Page27Intent和PendingIntent:Page28Notification和NotificationManager及BroadcastReceiver综合实例(与BroadcastReceiver结合)◦Notification2Page297.1Broadcast及BroadcastReceiver概述7.2自定义BroadcastReceiver7.3有序广播7.4接收系统内置广播事件7.5使用Notification和NotificationManager通知用户7.6闹钟AlarmManagerPage30实现方式:◦获取AlarmManagergetSystemService(Context.ALARMSERVICE);◦定义Intent—封装目标(广播接收者),定义PendingIntent—在闹钟闹的时候,再去激发Intent◦调用AlarmManager的方法,设置闹的时间等。Page31实例AlarmManagerPage32实例Page33实例
本文标题:第7章AndroidBroadcastReceiver组件
链接地址:https://www.777doc.com/doc-19803 .html