service简介
众所周知,service是android的四大组件之一,是一个后台工作者,主要运行在主线程中,当然也可以运行在子线程当中(使用IntentService实现),这就看我们的实现方式了。
demo的整体结构
项目整体有五个类,但是真正用到的也就三个类而已,运行demo就知道了。
这里我主要说一个类,当然是我们关心的Service类,如下图所示
Service的生命周期方法
简单介绍一个Service的几个生命周期方法,service从onCreate()创建到onDestroy()这两个方法是主要的生命周期方法,其它的几个生命周期方法的执行,就根据service是绑定方式启动还是非绑定方式启动了。
1.绑定方式启动,也就是执行bindService(intent, conn, Context.BIND_AUTO_CREATE),那么生命周期方法是:onCreate()->onBind();停止服务调用的方法是:onUnbind()->onDestroy()。
2.非绑定方式启动,也就是直接 startService(intent);这时候生命周期方法是:onCreate()->onStartCommand();停止service执行的方法是onDestroy()。
3.先启动service,然后再调用绑定方式启动,也就是 先执行 startService(intent),然后再执行 bindService(intent, conn, Context.BIND_AUTO_CREATE),执行的生命周期方法是onCreate()->onStartCommand()->onBind();停止服务的生命周期方法是:onUnbind()->onDestroy()。
结束语
如果想了解更多,请下载demo,附上demo链接地址:service的生命周期探索