
第5章后台服务与系统服务调用
第5章 后台服务与系统服务调用

5.1后台服务Service
5.1后台服务Service

>Android系统的Service是一种类似于Activity 的组件,但Service没有用户操作界面,也不能 自己启动,其主要作用是提供后台服务调用。 Service.不像Activity那样,当用户关闭应用界 面就停止运行,Service会一直在后台运行,除 非另有明确命令其停止。 >通常使用Service为应用程序提供一些只需在后 台运行的服务,或不需要界面的功能,例如, 从Internet下载文件、控制Video播放器等
➢ Android系统的Service是一种类似于Activity 的组件,但Service没有用户操作界面,也不能 自己启动,其主要作用是提供后台服务调用。 Service不像Activity那样,当用户关闭应用界 面就停止运行,Service会一直在后台运行,除 非另有明确命令其停止。 ➢ 通常使用Service为应用程序提供一些只需在后 台运行的服务,或不需要界面的功能,例如, 从Internet下载文件、控制Video播放器等

Service的生命周期中只有三个阶段: onCreate,onStartCommand,onDestroy. 方法 说明 onCreate() 创建后台服务。 onStartCommand (Intent intent, 启动一个后台服务。 int flags,int startId) onDestroy() 销毁后台服务,并删除所有调用。 sendBroadcast(Intentintent) 继承父类Context的sendBroadcast() 方法,实现发送广播机制的消息。 onBind(Intent intent) 与服务通信的信道进行绑定,服务程序 必须实现该方法。 onUnbind(Intentintent) 撤销与服务信道的绑定
方 法 说 明 onCreate() 创建后台服务。 onStartCommand (Intent intent, int flags, int startId) 启动一个后台服务。 onDestroy() 销毁后台服务,并删除所有调用。 sendBroadcast(Intent intent) 继承父类Context的sendBroadcast() 方法,实现发送广播机制的消息。 onBind(Intent intent) 与服务通信的信道进行绑定,服务程序 必须实现该方法。 onUnbind(Intent intent) 撤销与服务信道的绑定。 Service的生命周期中只有三个阶段: onCreate, onStartCommand, onDestroy

>通常Service?要在一个Activity中启动,调用 Activity的startService(Intent)方法启动 Service. >若要停止正在运行的Service,则调用 Activityl的stopService(Intent).方法关闭 Service。 >方法startService()和stopService()均继承 于Activity.及Service共同的父类 android.content.Context
➢ 通常Service要在一个Activity中启动,调用 Activity的startService(Intent)方法启动 Service。 ➢ 若要停止正在运行的Service,则调用 Activity的stopService(Intent)方法关闭 Service。 ➢ 方法startService()和stopService()均继承 于Activity及Service共同的父类 android.content.Context

一个服务只能创建一次,销毁一次,但可以开 始多次,即onCreate()和onDestroy()方法只 会被调用一次,而onStartCommand)方法可以 被调用多次。后台服务的具体操作一般应该放 在onStartCommand()方法里面。如果Service 已经启动,当再次启动Servicel时则不调用 onCreate()而直接调用onStartCommand()
➢ 一个服务只能创建一次,销毁一次,但可以开 始多次,即onCreate()和onDestroy()方法只 会被调用一次,而onStartCommand()方法可以 被调用多次。后台服务的具体操作一般应该放 在onStartCommand()方法里面。如果Service 已经启动,当再次启动Service时则不调用 onCreate()而直接调用onStartCommand()

设计一个后台服务的应用程序步骤: (1)创建Service的子类: >编写onCreate(0方法,创建后台服务: >编写onStartCommand0方法,启动后台服务: >编写onDestroy()方法,终止后台服务,并删除所有 调用
设计一个后台服务的应用程序步骤: (1)创建Service的子类: ➢编写onCreate()方法,创建后台服务; ➢编写onStartCommand()方法,启动后台服务; ➢编写onDestroy()方法,终止后台服务,并删除所有 调用

(2)创建启动和控制Service的Activity: >创建Intent对象,建立Activity.与Service的关联; >调用Activityl的startService(Intent)方法启动Service 后台服务; >调用Activity的stopService(Intent)方法关闭Service 后台服务。 (3)修改配置文件AndroidManifest.xml: >在配置文件AndroidManifest.xml的标 签中添加如下代码: >
(2)创建启动和控制Service的Activity: ➢创建Intent对象,建立Activity与Service的关联; ➢调用Activity的startService(Intent)方法启动Service 后台服务; ➢调用Activity的stopService(Intent)方法关闭Service 后台服务。 (3)修改配置文件AndroidManifest.xml: ➢在配置文件AndroidManifest.xml的标 签中添加如下代码: ➢

【例5-1】一个简单的后合音乐服务程序示例。 本例通过一个按钮 启动后台服务,在服 务程序中播放音乐文 留国上午933 ex5 1 件,演示服务程序的 start service . 创建、启动,再通过 启动后台音乐服务程序 另一按钮演示服务程 关闭后台音乐服务程序 序的销毁过程。新建 项日ex5-1后,将 个音频文件 mtest1.mp3复制到应 用程序的资源 启动后台服务程序,播放音乐 res/raw目录下
【例5-1】一个简单的后台音乐服务程序示例。 ➢ 本例通过一个按钮 启动后台服务,在服 务程序中播放音乐文 件,演示服务程序的 创建、启动,再通过 另一按钮演示服务程 序的销毁过程。新建 项目ex5-1后,将一 个音频文件 mtest1.mp3复制到应 用程序的资源 res/raw目录下

5.2信息广播机制Broadcast
5.2信息广播机制Broadcast