Android Service (服务)

经过前两章节的学习,我们知道了启动 Service 有两种方式 startService()bindService()

其实,还可以先调用 startService() 然后再 bindService()

startService() 启动 Service 后 bindService() 绑定

如果 Service 已经由某个客户端通过 startService() 启动,接下来由其它客户端 再调用 bindService() 绑定到该 Service 后调用 unbindService() 解除绑定,最后在 调用 bindService() 绑定到 Service 的话,此时所触发的生命周期方法如下

onCreate() -> onStartCommand() -> onBind() -> onUnbind() -> onRebind()

前提是 onUnbind() 方法返回 true

或许部分读者有疑惑了,调用了 unbindServiceService 不是应该调用 onDistory() 方法么

这是因为这个 Service 是由我们的 startService() 来启动的 ,所以调用 onUnbind() 方法取消绑定,Service 也是不会终止的

假如我们使用 bindService() 来绑定一个已启动的 Service, 注意是已经启动的 Service

系统只是将 Service 的内部 IBinder 对象传递给 Activity ,并不会将 Service 的生命周期 与 Activity 绑定,因此调用 unBindService() 方法取消绑定时,Service 也不会被销毁

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.