Android Service (服务)

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

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

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

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

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

前提是 onUnbind() 方法返回 true

或许部分读者有疑惑了,调用了 unbindService 后 Service 不是应该调用 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.