后台服务与系统服务调用ppt课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
5.2信息广播机制Broadcast
10
• Broadcast是Android系统应用程序之间传递信息
的一种机制。当系统之间需要传递某些信息时, 不是通过诸如单击按钮之类组件来触发事件,而 是由系统自身通过系统调用来引发事件。这种系 统调用是由BroadcastReceiver类的实现的,把这 种系统调用称为广播。
• BroadcastReceiver也就是“广播接收者”的意思,
顾名思义,它就是用来接收来自系统和应用中的 广播信息。
11
实现广播和接收机制的步骤:
• (1)创建Intent对象,设置Intent对象的
action属性。这个action属性是接收广播数 据的标识。注册了相同action属性的广播接 收器才能收到发送的广播数据。
第5章 后台服务与系统服务调 用
1
5.1后台服务Service
2
• Android系统的Service是一种类似于Activity的组
件,但Service没有用户操作界面,也不能自己 启动,其主要作用是提供后台服务调用。 Service不像Activity那样,当用户关闭应用界面 就停止运行,Service会一直在后台运行,除非 另有明确命令其停止。
onBind(Intent intent) onUnbind(Intent intent)
与服务通信的信道进行绑定,服务程序 必须实现该方法。
撤销与服务信道的绑定。
4
• 通常Service要在一个Activity中启动,调用Activity
的startService(Intent)方法启动Service。
• 若要停止正在运行的Service,则调用Activity的
stopService(Intent)方法关闭Service。
• 方法startService()和stopService()均继承于
Activity及Service共同的父类 android.content.Context。
5
• 一个服务只能创建一次,销毁一次,但可以开
• 通常使用Service为应用程序提供一些只需在后
台运行的服务,或不需要界面的功能,例如, 从Internet下载文件、控制Video播放器等。
3
Service的生命周期中只有三个阶段: onCreate, onStartCommand, onDestroy。
方法
说明
onCreate()
创建后台服务。
class TestReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
/* 接收广播信息并对信息作出响应的代码 */ } }
14
(4)在配置文件
AndroidManifest.xml中注册广播接
– 在配置文件AndroidManifest.xml的 <application>标签中添加如下代码:
– <service android:enabled="true"
android:name=".AudioSrv" />
8
【例5-1】一个简单的后台音乐服务 程序示例。
• 本例通过一个按钮启
动后台服务,在服务 程序中播放音乐文件, 演示服务程序的创建、 启动,再通过另一按 钮演示服务程序的销 毁过程。新建项目 ex5-1后,将一个音 频文件mtest1.mp3 复制到应用程序的资 源res/raw目录下。
始多次,即onCreate()和onDestroy()方法只会 被调用一次,而onStartCommand()方法可以 被调用多次。后台服务的具体操作一般应该放 在onStartCommand()方法里面。如果Service 已经启动,当再次启动Service时则不调用 onCreate()而直接调用onStartCommand()。
onStartCommand (Intent
启动一个后台服务。
intent, int flags, int startId)
onDestroy() sendBroadcast(Intent intent)
销毁后台服务,并删除所有调用。
继承父类Context的sendBroadcast() 方法,实现发送广播机制的消息。
Intent intent = new Intent(); intent.setAction("abc");
设置Intent对 象的action属 性值为“abc”
12
• (2)编写需要广播的信息内容,将需要
播发的信息封装到Intent中,通过 Activity或Service继承其父类Context的 sendBroadcast()方法将Intent广播出 去。
收类。
<service
注册广播接 收类
android:name=".TestReceiver">
<intent-filter>
<action android:name="abc" />
</intent-filter>
– 创建Intent对象,建立Activity与Service的关 联;
– 调用Activity的startService(Intent)方法启动 Service后台服务;
– 调用Activity的stopService(Intent)方法关闭 Service后台服务。
(3)修改配置文件AndroidManifest.xml:
6
设计一个后台服务的应用程序步 骤:
(1)创建Service的子类:
– 编写onCreate()方法,创建后台服务; – 编写onStartCommand()方法,启动后台服务; – 编写onDestroy()方法,终止后台服务,并删除
所有调用。
7Байду номын сангаас
(2)创建启动和控制Service的Activity:
键值对方式封装 广播信息内容
intent.putExtra("hello", "这是广播信息!"); sendBroadcast(intent);
13
• (3)编写一个继承BroadcastReceiver的
子类作为广播接收器,该对象是接收广 播信息并对信息进行处理的组件。在子 类中要重写接收广播信息的onReceive() 方法。
5.2信息广播机制Broadcast
10
• Broadcast是Android系统应用程序之间传递信息
的一种机制。当系统之间需要传递某些信息时, 不是通过诸如单击按钮之类组件来触发事件,而 是由系统自身通过系统调用来引发事件。这种系 统调用是由BroadcastReceiver类的实现的,把这 种系统调用称为广播。
• BroadcastReceiver也就是“广播接收者”的意思,
顾名思义,它就是用来接收来自系统和应用中的 广播信息。
11
实现广播和接收机制的步骤:
• (1)创建Intent对象,设置Intent对象的
action属性。这个action属性是接收广播数 据的标识。注册了相同action属性的广播接 收器才能收到发送的广播数据。
第5章 后台服务与系统服务调 用
1
5.1后台服务Service
2
• Android系统的Service是一种类似于Activity的组
件,但Service没有用户操作界面,也不能自己 启动,其主要作用是提供后台服务调用。 Service不像Activity那样,当用户关闭应用界面 就停止运行,Service会一直在后台运行,除非 另有明确命令其停止。
onBind(Intent intent) onUnbind(Intent intent)
与服务通信的信道进行绑定,服务程序 必须实现该方法。
撤销与服务信道的绑定。
4
• 通常Service要在一个Activity中启动,调用Activity
的startService(Intent)方法启动Service。
• 若要停止正在运行的Service,则调用Activity的
stopService(Intent)方法关闭Service。
• 方法startService()和stopService()均继承于
Activity及Service共同的父类 android.content.Context。
5
• 一个服务只能创建一次,销毁一次,但可以开
• 通常使用Service为应用程序提供一些只需在后
台运行的服务,或不需要界面的功能,例如, 从Internet下载文件、控制Video播放器等。
3
Service的生命周期中只有三个阶段: onCreate, onStartCommand, onDestroy。
方法
说明
onCreate()
创建后台服务。
class TestReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
/* 接收广播信息并对信息作出响应的代码 */ } }
14
(4)在配置文件
AndroidManifest.xml中注册广播接
– 在配置文件AndroidManifest.xml的 <application>标签中添加如下代码:
– <service android:enabled="true"
android:name=".AudioSrv" />
8
【例5-1】一个简单的后台音乐服务 程序示例。
• 本例通过一个按钮启
动后台服务,在服务 程序中播放音乐文件, 演示服务程序的创建、 启动,再通过另一按 钮演示服务程序的销 毁过程。新建项目 ex5-1后,将一个音 频文件mtest1.mp3 复制到应用程序的资 源res/raw目录下。
始多次,即onCreate()和onDestroy()方法只会 被调用一次,而onStartCommand()方法可以 被调用多次。后台服务的具体操作一般应该放 在onStartCommand()方法里面。如果Service 已经启动,当再次启动Service时则不调用 onCreate()而直接调用onStartCommand()。
onStartCommand (Intent
启动一个后台服务。
intent, int flags, int startId)
onDestroy() sendBroadcast(Intent intent)
销毁后台服务,并删除所有调用。
继承父类Context的sendBroadcast() 方法,实现发送广播机制的消息。
Intent intent = new Intent(); intent.setAction("abc");
设置Intent对 象的action属 性值为“abc”
12
• (2)编写需要广播的信息内容,将需要
播发的信息封装到Intent中,通过 Activity或Service继承其父类Context的 sendBroadcast()方法将Intent广播出 去。
收类。
<service
注册广播接 收类
android:name=".TestReceiver">
<intent-filter>
<action android:name="abc" />
</intent-filter>
– 创建Intent对象,建立Activity与Service的关 联;
– 调用Activity的startService(Intent)方法启动 Service后台服务;
– 调用Activity的stopService(Intent)方法关闭 Service后台服务。
(3)修改配置文件AndroidManifest.xml:
6
设计一个后台服务的应用程序步 骤:
(1)创建Service的子类:
– 编写onCreate()方法,创建后台服务; – 编写onStartCommand()方法,启动后台服务; – 编写onDestroy()方法,终止后台服务,并删除
所有调用。
7Байду номын сангаас
(2)创建启动和控制Service的Activity:
键值对方式封装 广播信息内容
intent.putExtra("hello", "这是广播信息!"); sendBroadcast(intent);
13
• (3)编写一个继承BroadcastReceiver的
子类作为广播接收器,该对象是接收广 播信息并对信息进行处理的组件。在子 类中要重写接收广播信息的onReceive() 方法。