关于Service的部分笔记
来源:互联网 发布:c语言 100内质数之和 编辑:程序博客网 时间:2024/06/05 20:30
捆绑一个Service,你需要注意以下几个点:
1.你应该去捕捉DeadObjectException,这个异常通常会在连接断开时抛出。
2.对象是整个进程计数的引用。
3.在进程的生命周期中,你应该配对使用绑定和解绑。比如:
如果你只是在activity可见的情况下与Service进行交互,那么你应该在onStart()函数里进行绑定并在onStop()函数里进行解绑。
如果你是想在你的activity里收到来自Service的回应[甚至在你的activity 被迫停止后进入后台运行时],那么你应该在onCreate()函数内进行绑定,并在onDestroy()函数内进行解绑。请注意,这意味着你的activity在整个生命周期里都在使用这个Service,如果这个Service是在其他进程内运行,那么你会加重这个进程的负载,并且这会导致系统Kill它以便回收资源。
注意:不要在activity的onResume()和onPause()函数中对Service进行捆绑以及解绑操作,因为这些回调函数会在生命周期里的任何过渡中出现,但你应该保持进程的过渡时间及其短暂。另外,如果一个应用中有多个activity绑定了同一个service并且在这些activity的两个中存在过渡,那么这个service可能会在activity被stop时被销毁,并在下一个activity resume时重建。
绑定Service的生命周期的管理
当一个Service不被任何用户[指的是activity、service、content provider]绑定时,安卓系统会销毁它[除非它是在onStartCommand()函数内被启动].因此,你不必要亲自去管理Service的生命周期。安卓系统会替你去管理它。
但是,如果你选择了实现onStartCommand()的回调函数,那么你就必须主动显性地去给它解绑。不然它会随时启动。在这种情况下,这个Service会活动至它以stopSelf()方式自杀或者是其他组件调用stopService()函数,不管它是否被用户所绑定。
此外,如果你的Service已经启动,并且接受绑定,那么,当系统调用你的onUnbind()方法时,如果你即将回调onRebind()方法你,那么需要选择性地返回true。onRebind()方法返回一个void,但是用户仍然可以在它回调onServiceConnected()接受IBinder对象。下表展示了Service的生命周期。
- 关于Service的部分笔记
- Android学习笔记--service部分
- Android学习笔记--service部分
- 关于service的一点学习笔记
- 关于Android的Service简单笔记
- 个人笔记 登录注册接口Service部分
- 之前的实习--关于Web部分的笔记
- Android学习笔记(7)-关于Service和Notification的体验
- Android学习笔记(6)---关于Service+MediaPlayer的使用
- Android官网中关于service 介绍的重要记录笔记
- Android官网中关于Creating a Bound Service的介绍笔记
- 关于原生js中ajax部分的学习笔记
- 关于《Java并发编程实战》 -- 第一部分的阅读笔记
- 关于《Java并发编程实战》 -- 第二部分的阅读笔记
- 关于matlab学习的部分笔记(一)
- 一些关于logging部分的代码笔记以及讲解
- 关于service的使用
- 关于Service的启动。。
- SourceTree的初识
- Android零基础入门第20节:CheckBox和RadioButton使用大全
- 在线API汇总.md
- 反射三 操作方法1
- HDU1686:Oulipo KMP算法
- 关于Service的部分笔记
- 深入理解DB2表空间(Tablespace)
- Codeforces834A The Useless Toy
- 通过VirtualAlloc预订虚拟地址空间,调拨物理内存
- 【python 图像处理】Python 图像处理库 Pillow 入门
- R语言之grep函数和正则通配符查询 [
- mysql5.7 安装
- java 自定义注解,获取注解信息
- beyong compare4 30天试用期到期暂时处理方法