服务启动一般有几种?

94 阅读1分钟

有两种启动方式

  1. startService
  2. bindService

startService: onCreate()->onStartCommand()->onDestory() 如果服务已经开启,不会重复的执行onCreate,而是会调用onStartCommand()。一旦服务开启跟调用者就没有任何关系了。

开启者退出了,开启者挂了,服务还在后台长期的运行。

开启者不能调用服务里面的方法。

bindService: onCreate()->onBind()->onUnbind()->onDestory()

bind的方式开启服务,绑定服务,调用者挂了,服务也会跟着挂掉。

绑定者可以调用服务里面的方法。

服务与服务,服务与Activity的通信方式:

  1. 通过Binder对象。
  2. 通过broadcast(广播)。