文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处:http://blog.csdn.net/flowingflying/

Android提供服务,服务是运行在后台的组件,没有UI,独立于activity的生命周期。有两种类型的服务:local services和remote services。本地服务是只能被本应用调用,而远端服务则可以被其他应用调用。远端服务通过AIDL(Android Interface Definition Language)描述。在服务这一部分重点介绍远端服务,而本地服务将以后还会深入学习。

在Android学习笔记系列中有三篇很好的博文对服务进行介绍:Android学习笔记(五一):服务Service(上)-IntentServiceAndroid学习笔记(五二):服务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开发相关文章

最新文章

  1. C#开发微信门户及应用(15)-微信菜单增加扫一扫、发图片、发地理位置功能
  2. 【Android】实现打开关闭效果
  3. JavaScript引擎LHS查找和RHS查找
  4. EOS/普元:概述:中国IT业的悲哀
  5. js 日期函数用法总结
  6. WPF bitmap转bitmapimage 使用 CreateBitmapSourceFromHBitmap内存泄漏
  7. SQL__用命令删除定期的备份数据库文件
  8. Python自动化开发-简介
  9. 一套常用的css初始化样式
  10. mysql导出导入数据无权限
  11. Java 初学UDP传输
  12. VueJs(11)---vue-router(命名路由,命名视图,重定向别名,路由组件传参)
  13. python 模块之-re
  14. python+selenium九:ddt数据驱动
  15. eclipse打开出现Failed to create the java virtual machine
  16. 20165302Exp0 Kali安装 Week1
  17. dokuwiki 配置 sendmail 邮件发送
  18. cf 1029D
  19. AI-终极算法-遗传算法
  20. CDOJ--1141

热门文章

  1. Python菜鸟之路:sqlalchemy/paramiko进阶
  2. zabbix server 端安装
  3. Swift来了,是不是能够入手IOS开发了?
  4. Android 部分机型在三星S3上面出现了,sqlite莫名其名的锁住的问题
  5. JVM调优-工具篇
  6. C#快速入门笔记(1)——基础语法
  7. js实现select动态添加option
  8. SQl Server 中登录名 、用户、角色、概念一览
  9. 吴恩达机器学习笔记(三) —— Regularization正则化
  10. 启动Hadoop时DFSZKFailoverController没有启动