(一)Service的生命周期和两种启动方式

Service

一、概念

Service,也是Android四大组件之一。对照Activity的概念,Service属于后台运行的进程,并不需要界面,可以在后台长期运行,适合做比如播放音乐,下载等任务。

二、生命周期和启动模式

2.1生命周期

由于生命周期并不多,而且跟activity的类似,这里和启动模式一起说
(一)Service的生命周期和两种启动方式
(1)onCreate,onDestroy与activity的概念一样,不赘述了
(2)onStartCommand,调用startService会回调这个生命周期,如果start同一个service多次,onCreate方法只会调用一次,而onStatrCommand会执行多次,只要调用了一次onDestroy,service的生命周期就结束了
(3)onBind,调用onBind方法时,会回调该方法,同样的,如果bind同一个service多次,onCreate方法也是只调用一次,而onBind方法会调用多次,只要调用了一次onUnBind,就会让绑定者与service解绑,当service上一个绑定者都没有的时候,自己就会destroy。
介绍生命周期的同时,其实就把两种调用方式已经顺便说了。

2.2调用方式

(1)start:比如从activity中start了一个service,那么activity与service是没什么关系的,即使activity退出了,service仍然可以运行,直到用户结束或者service自己destroy。
(2)bind:如果从activity中bind了一个service,那么activity与service就建立了一种关系,如果activity退出了,并且这个service没有其他的bindClient了,那么这时候,service就会自己结束。

比如音乐播放这种需求,当用户点击home退出了activity,我们仍然希望可以播放音乐,并且让我们可以控制暂停,下一首等操作,如何实现呢?请看下一篇  混合调用与AIDL使用