在Android中Service概述
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则运行在不同的进程中。
摘自 燕龙安的专栏
补充:移动开发 , Android ,