Service是android 系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service的启动有两种方式:context.startService() 和 context.bindService()。
使用context.startService() 启动Service是会会经历:
context.startService() ->onCreate()- >onStart()->Service running
context.stopService() | ->onDestroy() ->Service stop
如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次。
stopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。
所以调用startService的生命周期为:onCreate --> onStart(可多次调用) --> onDestroy
使用使用context.bindService()启动Service会经历:
context.bindService()->onCreate()->onBind()->Service running
onUnbind() -> onDestroy() ->Service stop
onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。这个时候把调用者(Context,例如Activity)会和Service绑定在一起,Context退出了,Srevice就会调用onUnbind->onDestroy相应退出。
所以调用bindService的生命周期为:onCreate --> onBind(只一次,不可多次绑定) --> onUnbind --> onDestory。
在Service每一次的开启关闭过程中,只有onStart可被多次调用(通过多次startService调用),其他onCreate,onBind,onUnbind,onDestory在一个生命周期中只能被调用一次。
service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。
分享到:
相关推荐
android service 学习(下) ,共两部分
android学习之Service启动1
这是Pro Android学习系列中Android Service部分的例子源代码。相关学习笔记见:http://blog.csdn.net/flowingflying/article/details/6212512
android service 学习笔记(上、下)android service 学习笔记(上、下)
这个是学习Android Service时的一个练习!
android service 源码 学习
android service 学习笔记(上、下)
用android的service做的音乐播放器,让service后台播放.mp3文件
android service 学习(上),共两部分
这是自己学习android中service组件的代码,供以后查看用。
Android在开机启动后系统会发出一个Standard Broadcast Action,名字叫android.intent.action.BOOT_COMPLETED,这个Action只会发出一次。
分析了framework中battery相关知识。
Service学习资料,包含Service的定义使用,两种启动方式。有两个demo,里面有介绍service基础知识,自定义Binder,如果与Activity通信。详情也可参考:http://blog.csdn.net/u012764110/article/details/48491567
Service学习时模仿别人实现的断电下载功能,使用Sqlite保持线程信息
这是我自己学习android service写的demo,详细介绍了创建service的步骤及用法。 还有android service与activity的交互操作。
NULL 博文链接:https://chaowen0668.iteye.com/blog/1090096
Android之Service学习总结收集.pdf
使用Android代码编写 Service(服务)的一个源码例子,这是一本Android专业教程中的一个例子,觉得挺简单,就分享给想学习Android应用开发的朋友们,希望对你的学习有所帮助。
这是Pro Android学习系列中http service的例子源代码。
小例子很实用,可以了解学习下Android强大的service功能 比如定时提醒,背景音乐播放等用service怎么实现。