当服务从所有的客户端解除绑定时,Android系统会销毁它(除非它还用onStartCommand()方法被启动了)。因此如果是纯粹的绑定类型的服务,你不需要管理服务的生命周期---Android系统会基于是否有客户端绑定了这个服务来管理它。
但是,你选择实现了onStartCommand()回调方法,那么你就必须明确的终止这个服务,因为系统被认为是启动类型的。这样服务就会一直运行到服务用stopSelf()方法或其他组件调用stopService()方法来终止自己,而不管是否有还有客户端绑定了它。
另外,如果你的服务是启动类型的并且也接收绑定,那么当系统调用onUnbind()方法时,如果你想要在下次客户端绑定这个服务时调用onRebind()方法,你可以选择返回true(而不是接收onBind()调用)。OnRebind()方法返回void,但是客户端依然能够在它的onServiceConnected()回调中接收IBinder对象。下图1说明了这种生命周期类型的逻辑。
图1. 允许被启动也允许被绑定的服务的生命周期
注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。
如有兴趣请访问作者官方博客http://blog.csdn.net/FireOfStar
当服务从所有的客户端解除绑定时,Android系统会销毁它(除非它还用onStartCommand()方法被启动了)。因此如果是纯粹的绑定类型的服务,你不需要管理服务的生命周期---Android系统会基于是否有客户端绑定了这个服务来管理它。
但是,你选择实现了onStartCommand()回调方法,那么你就必须明确的终止这个服务,因为系统被认为是启动类型的。这样服务就会一直运行到服务用stopSelf()方法或其他组件调用stopService()方法来终止自己,而不管是否有还有客户端绑定了它。
另外,如果你的服务是启动类型的并且也接收绑定,那么当系统调用onUnbind()方法时,如果你想要在下次客户端绑定这个服务时调用onRebind()方法,你可以选择返回true(而不是接收onBind()调用)。OnRebind()方法返回void,但是客户端依然能够在它的onServiceConnected()回调中接收IBinder对象。下图1说明了这种生命周期类型的逻辑。
图1. 允许被启动也允许被绑定的服务的生命周期
注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。
如有兴趣请访问作者官方博客http://blog.csdn.net/FireOfStar
分享到:
相关推荐
android bind life activity fragment 生命周期 绑定
rxjava2 retrofit2 rxlifecycle2,有生命周期感知的网络请求框架封装(包含多文件上传及文件下载和下载进度)
DailyNet 简单易用的Android网络请求框架,自动绑定生命周期调度请求
MVP官方写法和Activity生命周期绑定
3.4 Android应用程序生命周期 48 3.5 理解应用程序的优先级和进程状态 49 3.6 分离资源 50 3.6.1 创建资源 50 3.6.2 使用资源 57 3.6.3 To-Do List资源示例 60 3.6.4 为不同的语言和硬件创建资源 61 3.6.5 ...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
RetrofitLifecycle RetrofitLifecycle manage retrofit call's lifecycle with proxy class which generated by annotation. Usage Add it in your root build.gradle at the end of repositories: ...
新的Android体系结构组件生命周期许可的RxComponentLifecycle Rx绑定版权所有2017 Florent37,Inc.受Apache许可,版本2.0(“许可”)许可; 您不得使用此文件,除非是新的Android体系结构组件生命周期许可证的...
Treasure,MVP 改型2 RXJava2 Rxandroid Okhttp3 生命周期(Android架构组件),谷歌模式.zip
库存android活动的rx绑定&片段生命周期,避免内存泄漏
5.4.3 Binder引用对象的生命周期.......................... 204 5.4.4 Binder代理对象的生命周期.......................... 209 5.5 Binder对象死亡通知机制..................................... 212 5.5.1 ...
2.2. Activity 的生命周期 ....................... 27 2.2.1. Activity 的生命周期图 .......... 27 2.2.2. Activity 的四种状态 .............. 29 2.2.3. Activity 的生命周期循环 ...... 30 4 2.2.4. Activity ...
JarvisDownloader 熟悉漫威电影的人都知道Jarvis,他是钢铁侠的智能管家,帮助钢铁侠制造装甲、分析大量数据、协助建模等各种智能工作,可惜在复联2中,Jarvis与心灵...自动与activity绑定生命周期,无需手动释放 act
071集-Service的生命周期与绑定视频教程,讲解的比较详细,可以参考下哦。
2.2.2 应用程序生命周期............... 17 2.3 构建块......... 19 2.3.1 活动............ 19 2.3.2 意图............ 19 2.3.3 服务............ 19 2.3.4 内容提供者................. 19 2.4 使用...
服务就是默默的在后台工作 服务的有两种启动方式,对应两个生命周期 startService启动方式,只在activity中启动...bindService启动方式,和activity绑定后,和activity共存亡,activity退出,服务停止,对应生命周期:
不同module都能接收Application的onCreate等生命周期回调进行本module的初始化 不同module之间的页面跳转,自动打包传递参数 不同module之间的数据交互,接口参数对开发友好可见 页面跳转支持所有Intent可配置的参数...
本章内容服务(Service)是Android... Service的生命周期 绑定Activity和Service 在BroadcastReceiver中启动Service 系统服务 时间服务 在线程中更新GUI组件 AIDL服务 在AIDL服务中传递复杂的数据
然后使用 RxLifecycle 将序列绑定到该生命周期。 它假设您想在相反的生命周期事件中结束序列——例如,如果在开始时订阅,它将在停止时终止。 如果您在暂停后订阅,它将在下一个销毁事件中终止(例如,pasue 将在...