Android服务Service详解

上传人:ni****g 文档编号:496472864 上传时间:2023-02-04 格式:DOC 页数:128 大小:758.50KB
返回 下载 相关 举报
Android服务Service详解_第1页
第1页 / 共128页
Android服务Service详解_第2页
第2页 / 共128页
Android服务Service详解_第3页
第3页 / 共128页
Android服务Service详解_第4页
第4页 / 共128页
Android服务Service详解_第5页
第5页 / 共128页
点击查看更多>>
资源描述

《Android服务Service详解》由会员分享,可在线阅读,更多相关《Android服务Service详解(128页珍藏版)》请在金锄头文库上搜索。

1、.第8章Android服务8.1Service起步8.1.1Service的生命周期8.1.2绑定Activity和Service8.1.3在BroadcastReceiver中启动Ser.8.2.1获得系统服务8.2.2在模拟器上模拟重力感应8.3.1计时器:Chronometer8.3.2预约时间Handler8.3.4在线程中更新GUI组件8.3.5全局定时器AlarmManager(1)8.3.5全局定时器AlarmManager(2)8.3.5全局定时器AlarmManager(3)8.4.1什么是AIDL服务8.4.2建立AIDL服务的步骤(1)8.4.2建立AIDL服务的步骤(2

2、)8.4.2建立AIDL服务的步骤(3)8.5本章小结第8章Android服务服务(Service)是Android系统中4个应用程序组件之一(其他的组件详见3.2节的内容)。服务主要用于两个目的:后台运行和跨进程访问。通过启动一个服务,可以在不显示界面的前提下在后台运行指定的任务,这样可以不影响用户做其他事情。通过AIDL服务可以实现不同进程之间的通信,这也是服务的重要用途之一。本章内容Service的生命周期绑定Activity和Service在BroadcastReceiver中启动Service系统服务时间服务在线程中更新GUI组件AIDL服务在AIDL服务中传递复杂的数据8.1Ser

3、vice起步Service并没有实际界面,而是一直在Android系统的后台运行。一般使用Service为应用程序提供一些服务,或不需要界面的功能,例如,从Internet下载文件、控制Video播放器等。本节主要介绍Service的启动和结束过程(Service的生命周期)以及启动Service的各种方法。8.1.1Service的生命周期本节的例子代码所在的工程目录是srcch08ch08_servicelifecycleService与Activity一样,也有一个从启动到销毁的过程,但Service的这个过程比Activity简单得多。Service启动到销毁的过程只会经历如下3个阶段

4、:创建服务开始服务销毁服务一个服务实际上是一个继承android.app.Service的类,当服务经历上面3个阶段后,会分别调用Service类中的3个事件方法进行交互,这3个事件方法如下:1. publicvoidonCreate();/创建服务2. publicvoidonStart(Intentintent,intstartId);/开始服务3. publicvoidonDestroy();/销毁服务一个服务只会创建一次,销毁一次,但可以开始多次,因此,onCreate和onDestroy方法只会被调用一次,而onStart方法会被调用多次。下面编写一个服务类,具体看一下服务的生命周期

5、由开始到销毁的过程。1. packagenet.blogjava.mobile.service;2. importandroid.app.Service;3. importandroid.content.Intent;4. importandroid.os.IBinder;5. importandroid.util.Log;6. /MyService是一个服务类,该类必须从android.app.Service类继承7. publicclassMyServiceextendsService8. 9. Override10. publicIBinderonBind(Intentintent)11

6、. 12. returnnull;13. 14. /当服务第1次创建时调用该方法15. Override16. publicvoidonCreate()17. 18. Log.d(MyService,onCreate);19. super.onCreate();20. 21. /当服务销毁时调用该方法22. Override23. publicvoidonDestroy()24. 25. Log.d(MyService,onDestroy);26. super.onDestroy();27. 28. /当开始服务时调用该方法29. Override30. publicvoidonStart(I

7、ntentintent,intstartId)31. 32. Log.d(MyService,onStart);33. super.onStart(intent,startId);34. 35. 在MyService中覆盖了Service类中3个生命周期方法,并在这些方法中输出了相应的日志信息,以便更容易地观察事件方法的调用情况。读者在编写Android的应用组件时要注意,不管是编写什么组件(例如,Activity、Service等),都需要在AndroidManifest.xml文件中进行配置。MyService类也不例外。配置这个服务类很简单,只需要在AndroidManifest.xml

8、文件的标签中添加如下代码即可:1. 其中android:enabled属性的值为true,表示MyService服务处于激活状态。虽然目前MyService是激活的,但系统仍然不会启动MyService,要想启动这个服务。必须显式地调用startService方法。如果想停止服务,需要显式地调用stopService方法,代码如下:1. publicvoidonClick(Viewview)2. 3. switch(view.getId()4. 5. caseR.id.btnStartService:6. startService(serviceIntent);/单击【StartService

9、】按钮启动服务7. break;8. caseR.id.btnStopService:9. stopService(serviceIntent);/单击【StopService】按钮停止服务10. break;11. 12. 其中serviceIntent是一个Intent对象,用于指定MyService服务,创建该对象的代码如下:1. serviceIntent=newIntent(this,MyService.class);运行本节的例子后,会显示如图8.1所示的界面。http:/ onCreate2. onStart然后单击【StopService】按钮,会在Message列中输出如下信

10、息:1. onDestroy下面按如下的单击按钮顺序的重新测试一下本例。【StartService】【StopService】【StartService】【StartService】【StartService】【StopService】测试完程序,就会看到如图8.2所示的输出信息。可以看出,只在第1次单击【StartService】按钮后会调用onCreate方法,如果在未单击【StopService】按钮时多次单击【StartService】按钮,系统只在第1次单击【StartService】按钮时调用onCreate和onStart方法,再单击该按钮时,系统只会调用onStart方法,而不会再次调用onCreate方法。http:/ publicbooleanbindService(Intentservice,ServiceConnectionconn,intflags)该方法的第1个参数表示与服务类相关联的Intent对象,第2个参数是一个ServiceConnection类型的变量,负责连接Intent对象指定的服务。通过Se

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号