第7章 后台服务与系统服务调用.pptVIP

  • 6
  • 0
  • 约2.32千字
  • 约 33页
  • 2017-11-29 发布于湖北
  • 举报
第7章 后台服务与系统服务调用

;7.1后台服务Service ;Android系统的Service是一种类似于Activity的组件,但Service没有用户操作界面,也不能自己启动,其主要作用是提供后台服务调用。Service不像Activity那样,当用户关闭应用界面就停止运行,Service会一直在后台运行,除非另有明确命令其停止。 通常使用Service为应用程序提供一些只需在后台运行的服务,或不需要界面的功能,例如,从Internet下载文件、控制Video播放器等。 ;方 法;通常Service要在一个Activity中启动,调用Activity的startService(Intent)方法启动Service。 若要停止正在运行的Service,则调用Activity的stopService(Intent)方法关闭Service。 方法startService()和stopService()均继承于Activity及Service共同的父类android.content.Context。;一个服务只能创建一次,销毁一次,但可以开始多次,即onCreate()和onDestroy()方法只会被调用一次,而onStartCommand()方法可以被调用多次。后台服务的具体操作一般应该放在onStartCommand()方法里面。如果Service已经启动,当再次启动Service时则不调用onCreate()而直接调用onStartCommand()。;设计一个后台服务的应用程序步骤:;(2)创建启动和控制Service的Activity: 创建Intent对象,建立Activity与Service的关联; 调用Activity的startService(Intent)方法启动Service后台服务; 调用Activity的stopService(Intent)方法关闭Service后台服务。 (3)修改配置文件AndroidManifest.xml: 在配置文件AndroidManifest.xml的application标签中添加如下代码: service android:enabled=true android:name=.AudioSrv /;【例7-1】一个简单的后台音乐服务程序示例。;7.2信息广播机制Broadcast ;Broadcast是Android系统应用程序之间传递信息的一种机制。当系统之间需要传递某些信息时,不是通过诸如单击按钮之类组件来触发事件,而是由系统自身通过系统调用来引发事件。这种系统调用是由BroadcastReceiver类的实现的,把这种系统调用称为广播。 BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播信息。;实现广播和接收机制的步骤: ;(2)编写需要广播的信息内容,将需要播发的信息封装到Intent中,通过Activity或Service继承其父类Context的sendBroadcast()方法将Intent广播出去。 intent.putExtra(hello, 这是广播信息!); sendBroadcast(intent);;(3)编写一个继承BroadcastReceiver的子类作为广播接收器,该对象是接收广播信息并对信息进行处理的组件。在子类中要重写接收广播信息的onReceive()方法。;(4)在配置文件AndroidManifest.xml中注册广播接收类。;(5)销毁广播接收器。;【例7-2】一个简单的信息广播程序示例。;为了识别Intent对象的action,有时在IntentFilter对象中设置Intent对象的action,而注册广播接收器的工作由registerReceiver()方法完成。 registerReceiver(mBroadcast, filter)方法有两个参数,其中参数mBroadcast是广播接收器BroadcastReceiver对象,filter是IntentFilter对象。;【例7-3】由一个后台服务广播音乐的播放或暂停信息,接收器接收到信息后,执行改变用户界面按钮上文本的操作。;(代码详见教材);7.3 系统服务 ;7.3.1 Android的系统服务;7.3.2 系统通知服务Notification ;属 性;系统通知服务Notification由系统通知管理对象NotificationManager进行管理及发布通知。由getSystemService(NOTIFICATION_SERVICE)创建NotificationManager对象,  NotificationManager n_Manager = NotificationManager)getSyste

文档评论(0)

1亿VIP精品文档

相关文档