`
mengsina
  • 浏览: 188675 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Android中Service概述和AIDL例子

 
阅读更多
      Service的主要用途是提供后台服务调用,与Activity不同,service没有界面,也正因为如此,它不像Activity那样当用户离开应用界面就停止,Service则一直在后台运行,除非明确命令其停止。

       Service也有生命周期的。当启动Service时,首先调用OnCreate()方法,然后调用onStart()方法。当Service停止时,会调用onDestroy()方法。

启动Service有两种方式,分别是调用startService()和bindService()。使用前者时,如何该Service还没启动,那么系统会先后调用该Service的onCreate()方法和onStart()方法,并且在使用完后该Service并不停止,除非使用stopService()明确停止。bindService()用于绑定一个Service,如何Service不存在,绑定就会失败;不过可以设置bindService()的参数,指定当Service不存时启动该Service,通过此方法启动的Service在使用完后,系统会自动停止该Service。

     如果只是提供后台服务的话,那么不需要使用Service,使用线程Thread就可以了。Service的特点还在于进程间的服务调用,不仅在一个应用程序内部可以调用,还可以跨应用程序调用。调用Service服务的程序成为客户端Client。

     如果Service与Client同在一个应用程序内,那么它们默认是在同一个进程、同一个线程内运行,因此,为了不使Client线程挂起,一般创建Service时都会重新建立一个Thread完成具体的工作,Service仅是提供一个调用的接口。而如果Client是在另一个程序中,那么Client和Service则运行在不同的进程中。
AIDL就是按照这个利用service的不用进程间来实现的。

转载自:http://www.2cto.com/kf/201111/111175.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics