【转】 Pro Android学习笔记(七六):服务(1):local和remote
文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处:http://blog.csdn.net/flowingflying/
Android提供服务,服务是运行在后台的组件,没有UI,独立于activity的生命周期。有两种类型的服务:local services和remote services。本地服务是只能被本应用调用,而远端服务则可以被其他应用调用。远端服务通过AIDL(Android Interface Definition Language)描述。在服务这一部分重点介绍远端服务,而本地服务将以后还会深入学习。
在Android学习笔记系列中有三篇很好的博文对服务进行介绍:Android学习笔记(五一):服务Service(上)-IntentService、Android学习笔记(五二):服务Service(中)- 继承Service类和Android学习笔记(五三):服务Service(下)- Remote Service。
Android基于两个原因提供service概念:1、更容易实现后台任务;2、在应用间实现进程间通信(IPC)。前者对应local service,后者对应为remote service。
Android提供的android.app.Service类,和刚学习的AsyncTask不同,Service类没有建立线程,也就是说如果我们不为之建立线程,则Service将运行在主线程中。
对于local service,即之限在同一线程的组件使用,client是通过Context.startService()来启动service。如果服务支持onBind(),表明它是一个remote service,通过进程间通信Context.bindService()来调用,由于远程服务支持AIDL,也可通过AIDL来与服务通信。虽然Service类支持local和remote两种,但我们不应创建一个service对象同时支持两种,因为它们有着不同的预先设定好的生命周期,不要混淆。
Remote service还有很多名称,例如RPC(Remote Procedure Call)服务,AIDL服务。
这应该是本系列最短篇幅的新记录。
相关链接: 我的Android开发相关文章
最新文章
- C#开发微信门户及应用(15)-微信菜单增加扫一扫、发图片、发地理位置功能
- 【Android】实现打开关闭效果
- JavaScript引擎LHS查找和RHS查找
- EOS/普元:概述:中国IT业的悲哀
- js 日期函数用法总结
- WPF bitmap转bitmapimage 使用 CreateBitmapSourceFromHBitmap内存泄漏
- SQL__用命令删除定期的备份数据库文件
- Python自动化开发-简介
- 一套常用的css初始化样式
- mysql导出导入数据无权限
- Java 初学UDP传输
- VueJs(11)---vue-router(命名路由,命名视图,重定向别名,路由组件传参)
- python 模块之-re
- python+selenium九:ddt数据驱动
- eclipse打开出现Failed to create the java virtual machine
- 20165302Exp0 Kali安装 Week1
- dokuwiki 配置 sendmail 邮件发送
- cf 1029D
- AI-终极算法-遗传算法
- CDOJ--1141