Android 服务(二)BindService
来源:互联网 发布:unity3d texture2d 编辑:程序博客网 时间:2024/06/05 16:08
一 服务除了上一篇提到的方式,还有一种就是BindService,那么大家肯定有疑问了,为什么会采取BindService这种方式呢?
1、采用Bound Services方式,不仅可以启动服务,还可调用服务里面的方法;
2、但BindService方法不会引发OnStartCommand事件,故也无StartCommandResult可利用;绑定的意义在于服务方法的调用;
也就是说,当我们想调用服务里面的某一个方法时,就需要BindService这种形式了。
所以绑定服务的意义完全在于调用服务里面的方法。
二 服务的生命周期(从创建到销毁)有两条路径:
被启动的服务(startedservice)
当服务被一个组件通过startService()函数启动后,这个服务就会独立的运行,必须被自己用stopSelf()函数或者其他组件用stopService()函数来停止。一旦服务被停止,系统就会销毁它。
绑定的服务(bound service)
当一个服务被另一个组件通过bindService()函数创建后,客户就会通过IBinder接口和服务进行交互。客户可以通过unbindService()函数关闭连接(解除绑定 )。多个客户可以绑定到同一个服务,当所有客户都关闭和服务连接(解除绑定 )后,系统会销毁服务(服务没有必要自己停止自己)。
这两条路径并不是完全分离的。这是因为你可以绑定一个被启动的服务(started service)。例如,一个音乐播放服务可能被startService()函数启动来播放一首歌曲。过了一会儿,可能用户想要在播放器做一些操作或者获取关于当前歌曲的信息,一个activity就会通过bindService()函数绑定到该服务。started service + bindService 这种情况下,调用stopService()或 stopSelf() 不会真的停止服务,直到所有绑定的客户都解除绑定(关闭连接)。
- Android 服务(二)BindService
- android Service(二) activity启动Service方式二:bindService()
- Android应用程序绑定服务(bindService)的过程源代码分析
- Android Service 服务(三)—— bindService与remoteService
- Android Service 服务(三)—— bindService与remoteService
- Android Service 服务(三)—— bindService与remoteService
- Android Service 服务(三)—— bindService与remoteService
- Android应用程序绑定服务(bindService)的过程源代码分析
- android Service 服务(三)—— bindService与remoteService
- Android Service 服务(三)—— bindService与remoteService
- Android Service 服务(三)—— bindService与remoteService
- Android Service 服务(三)—— bindService与remoteService
- Android Service 服务(三)—— bindService与remoteService
- Android Service 服务(三)—— bindService与remoteService
- Android Service 服务(三)—— bindService与remoteService
- Android Service 服务(三)—— bindService与remoteService
- Android Service 服务(三)—— bindService与remoteService
- Android Service 服务(三)—— bindService与remoteService
- java5 Condition用法--实现线程间的通信
- nginx 支持thinkphp pathinfo最简单的方法
- final,finalize(),finally的区别
- 面向对象程序设计上机练习十(运算符重载)
- Parcelable接口
- Android 服务(二)BindService
- 『RNN 监督序列标注』笔记-第一/二章 监督序列标注
- iOS---沙盒路径和获取路径的方法
- 面向对象程序设计上机练习十一(运算符重载)
- 网络爬虫:URL去重策略之布隆过滤器(BloomFilter)的使用
- cocos2d html5 3.8.1 .修复Cocos2d Particle Builder plist 粒子文件 base64 图片 解压错误
- 面向对象程序设计上机练习十二(运算符重载)
- window 安装 pip 链接
- sencha cmd项目主题修改