跟着Innost理解下Service 的启动以及与AMS的交互

作为四大组件之一Service,其响应Client的请求方式有两种:
· Client通过调用startService向Service端发送一个Intent,该Intent携带请求信息。而Service的onStartCommand会接受该Intent,并处理之。该方式是Android平台特有的,借助Intent来传递请求。
· Client调用bindService函数和一个指定的Service建立Binder关系,即绑定成功后,Client端将得到处理业务逻辑的Binder Bp端。此后Client直接调用Bp端提供的业务函数向Service端发出请求。注意,在这种方式中,Service的onBind函数被调用,如果该Service支持Binder,需返回一个IBinder对象给客户端。

这两种方式还影响Service对象的生命周期,简单总结如下:
· 对于以startService方式启动的Service对象,其生命周期一直延续到stopSelf或stopService被调用为止。
· 对于以bindService方式启动的Service对象,其生命周期延续到最后一个客户端调用完unbindService为止。

跟着Innost理解下Service 的启动以及与AMS的交互_第1张图片

跟着Innost理解下Service 的启动以及与AMS的交互_第2张图片

你可能感兴趣的:(android)