Android 服务和广播事件

Android 服务和广播事件
学习目标: 了解Android中Service的广播的应用场景和基本概念
         掌握在Android中定义实现Service
         掌握在Android 中使用广播事件
学习内容: 案例:音乐播放器
         案例的设计与实现
任务概述--功能分析(界面设计,播放,暂停,停止,同时显示歌手和音乐名称)--用户界面设计(线性布局)

--技术要点(Service的创建与调用,Service和Activity之间的通讯,Intent对象的使用)--案例演示

Android 服务和广播事件

案例演示:
一:用户界面设计
1.两个按钮: 播放/暂停和停止播放
(1)播放按钮:空闲、播放和暂停(3个状态)
空闲 -- > 播放 -- > 暂停
(2)停止按钮:不可用和可点击 (2个状态)
播放 -- > 可点击 -- > 不可用
2.右边显示当前播放的音乐和歌手名称
二:核心代码设计
1.创建Android项目MusicBox
2.在res/layout目录,创建播放器的主界面布局文件
3.定义一个MusicBoxConstant的常量类存放程序中用到的静态或不变的信息
4.创建音乐播放的服务类
5.在全局配置文件中,声明Service类
6.定义实现音乐播放器的主界面
7.定义实现ActivityReceiver事件接收器
接收音乐服务状态变化广播事件的接收器
8.定义实现按钮事件接收器
音乐按键按钮事件的监听器OnClickListener
9.实现监听播放按钮的监听器
实现MusicListener,在事件处理器中,发送广播事件
MusicBoxConstant类:存放一些固定不变的常量信息(状态,歌曲的名字,作者,消息)
   好处:修改方便、
MusicBox类:本身是一个界面类,包含两个TextView,一个ImageButton(图片按钮),一个ActivityReceiver(广播监听器)
重写了onCreate()方法 。
protect void onCreate(bundle savedinstanceState){//界面组件的初始化


super.onCreat(savedInstanceState);
setContentView(R.layout.activity_main); //界面布局的引入
MusicListener  musicListen  = new MusicListener  //用来监听按钮  
}
三:强制转化类型
强制转化类型转化是在程序的运行过程中,将父类型对象强制转化为子类型对象
并不是所有的父类型都可以转化为子类型,具体情况具体分析
四:广播接收机制
1 广播消息  --是一种在应用程序之间传输信息的机制
2 广播接收者--BroadcaReceiver
BroadcastReceiver 对发送出来的广播事件进行过滤接收并相应组件
BroadcastReceiver 没有图形界面--Service
广播可以有多个接收者,彼此之间不晓得广播接收者之间匿名。
3 监听广播机制--Intent
广播和事件监听是分离的
通过Android系统进行广播,接收广播事件
注册和移除监听通过Android系统来完成
Android系统提供的很多系统广播定义在Android.content.Intent类中
4 广播方法---
sendBroadcast()普通模式
a.所有注册了广播事件的接收者会获得事件通知
b.接收者和发送者不知晓
c.接收者接收顺序不确定并发的在各自的应用程序中执行
sendOrderBroadcast()有序广播模式
a.接收者依照优先级高低依次接收
b.高优先级接收者可以中断后续广播的接收
c.高优先级可以添加额外信息给后续接收者  ---BrocastReceiver.setResult();

5 系统广播列表

五:广播事件的生命周期
事件触发-新建BroadcastReceive对象--调用onReceive()-销毁对象-结束返回

Android 服务和广播事件