三 service 面试详解
来源:互联网 发布:linux samba配置用户 编辑:程序博客网 时间:2024/06/07 14:07
一 基础知识
01 定义
service 中文译为服务。它和 activity boardcastReceive contentProdived,并称为 Android 四大组件,service 属于计算型的组件。
02 作用
提供长期运行在后台的服务,例如播放音乐,复杂计算,下载,实时传输地理位置信息等。
03 特点
长生命周期,没有用户界面,运行在后台,进程的优先级高于 activity 。运行在主线程,不能执行耗时操作。
二 service 生命周期
service 的生命周期和启动 service 的方式有关,启动 service 的方式有以下三种:
01 非绑定式
非绑定式就是以 startService 启动服务的方式
1 手动调用的方法
启动服务:startService(Intent intent)
停止服务:stopService(Intent intent)
2 内部调用方式
创建服务:onCreate()
开始服务:onStartCommand()
销毁服务:onDestory()
3 生命周期流程
02 绑定式
绑定式就是以 bindService 方式启动的服务
1 手动调用的方法
绑定服务:bindService(Intent intent,ServiceConnection conn,int BIND_AUTO_CREATE )
解绑服务:unBindService(Intent intent)
2 内部调用的方法
创建服务:onCreate()
绑定服务:onBind()
解绑服务:unBind()
销毁服务:onDestory()
3 生命周期流程
03 混合式
混合式顾名思义,就是以 startService 和 bindService 两种方式混用启动 service 。
1 生命周期流程
04 非绑定式和绑定式的区别
1 与调用者的关系
非绑定式:startService 和 stopService 只能 开启服务和关闭服务,无法操作服务。它与调用服务的对象没有任何关系。调用的对象销毁了,service 也依然存在。
绑定式:bindService 和 unBindService 负责 service 与调用者的绑定和解绑。调用者对象销毁之后 service 不能存在。需要注意的地方是:需在在调用者销毁之前,必须进行与 service 之间,解除绑定。例如在 Activity 中的 onDestory() 方法中进行解绑操作。
2 通信
非绑定式:非绑定式的 service 与 调用者之间,没有任何关系。所以不存在通信的条件。
绑定式:绑定式的 service 与调用者之间,产生了绑定的关系。在绑定的方法中,传入 ServcieConnection 的实现类,作为纽带。实现类中有两个回调方法,回传了携带数据的 IBinder 对象,从而实现了 service 和调用者之间的通信。
三 service 分类
- 三 service 面试详解
- Service面试详解
- 5、Service详解(三):远程Service
- Service详解(三):Service的使用
- Android面试(三)BroadCastReceiver和Service
- Android Service详解(三)---IntentService
- Android Service 详解三:从类Service派生service
- Android Service 详解三:从类Service派生service
- Android Service 详解三:从类Service派生service
- Android Service 详解三:从类Service派生service
- Android Service 详解三:从类Service派生service
- ios 面试详解题-三
- Web Service描述语言 WSDL 详解 (三)
- Android bound service 详解三:使用Messenger
- Android bound service 详解三:使用Messenger
- Android bound service 详解三:使用Messenger
- Android bound service 详解三:使用Messenger
- Android bound service 详解三:使用Messenger
- mybatis配置遇到的问题There is no getter for property named 'post_title' in 'class
- Tomcat启动项目,报错The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xm
- 第7章-选择器+伪类
- 使用泛型来创建我们自己的列表
- Guitar Pro 7 中文破解版-汉化破解版地址
- 三 service 面试详解
- PHP中 XBM格式 文件的操作
- MySQL数据库索引
- 迅速教你掌握Web运维技能
- Q15格式说明
- C/C++ 第三周线性表项目(2) 求集合并集
- CLI or GUI --- 要高效还是要易用? (该文作者的功底真的很深厚啊)
- iOS之id ,NSObject, id<NSObject>区别
- 第三周【项目4