【转】 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开发相关文章
【转】 Pro Android学习笔记(七六):服务(1):local和remote的更多相关文章
- 【转】 Pro Android学习笔记(六七):HTTP服务(1):HTTP GET
目录(?)[-] HTTP GET小例子 简单小例子 出现异常NetworkOnMainThreadException 通过StrictMode进行处理 URL带键值对 Andriod应用可利用ser ...
- 【转】 Pro Android学习笔记(六八):HTTP服务(2):HTTP POST
目录(?)[-] 找一个测试网站 HTTP POST小例子 上次学习了HTTP GET请求,这次学习一下HTTP POST. 找一个测试网站 小例子好写,但要找个测试网站就有些麻烦,一下子无从入手,都 ...
- 【转】 Pro Android学习笔记(六九):HTTP服务(3):HTTP POST MultiPart
目录(?)[-] 建立测试环境 开发环境导入第三方JAR HTTP Post Multipart小例子 HTTP POST不仅可以通过键值对传递参数,还可以携带更为复杂的参数,例如文件.HTTP Po ...
- 【转】 Pro Android学习笔记(六五):安全和权限(2):权限和自定义权限
目录(?)[-] 进程边界 声明和使用权限 AndroidManifestxml的许可设置 自定义权限 运行安全通过两个层面进行保护.进程层面:不同应用运行在不同的进程,每个应用有独自的user ID ...
- 【转】 Pro Android学习笔记(六三):Preferences(7):代码控制首选项
[-] 代码实现preference 利用preference保存状态 DialogPreference 代码实现preference View可以不通过xml进行设置,有代码直接进行设置,首选项pr ...
- 【转】 Pro Android学习笔记(六二):Preferences(6):header
目录(?)[-] 代码实现 header xml文件 在前面的例子,我们主要学习了PreferenceScreen的xml如何写,preference有哪些类型.在代码中,我们为了不提示warning ...
- 【转】 Pro Android学习笔记(六十):Preferences(4):MultiSelect List Preference
目录(?)[-] XML文件 在设备中保存 读出信息 ListPreference提供单选列表,我们可以通过CheckBoxPreference提供多选列表.此外,Android在3.0后提供Mult ...
- 【转】 Pro Android学习笔记(六四):安全和权限(1):签发apk
目录(?)[-] Android安全模型 数字证书签发 Debug的keystore 生产unsigned的apk 为apk进行证书签发 align安装包 使用Export Wizard生成签发的ap ...
- 【转】Pro Android学习笔记(六):了解Content Provider(中)
Content Provider的架构 Authority类似web中的域名,每个content provider会通过AndroidManifest.xml向系统注册authority,如下.其中n ...
- 【转】 Pro Android学习笔记(八二):了解Package(1):包和进程
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见P ...
随机推荐
- cocoapods最新使用
1.首先用淘宝的Ruby镜像来访问CocoaPods,打开终端输入以下命令: (1)gem sources --remove http://ruby.gems.org/ (移除现有Ruby默认源) ...
- mysql数据库访问授权
1.进入MySQL服务器 d:\mysql\bin\> mysql -h localhost -u root; 2.赋予任何主机访问数据的权限 mysql> GRANT ALL PRIVI ...
- 【译】常见 Java 异常解释(恶搞版)
常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎o(╯□╰)o) java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题 ...
- Linux开启防火墙后,设置允许通过的端口
安装Firewall命令: yum install firewalld firewalld-config Firewall开启端口命令: firewall-cmd --zone=public --ad ...
- linux nginx完全卸载
Nginx虽然好用,但是一旦关键配置文件被修改,想要卸载重装却是相当困难.本人因为采用apt-get方式安装后又源码安装了Nginx,结果出现冲 突,卸载不了,安装不上,很是蛋疼.主要的问题还 ...
- Java找出一组数字的最大值
形如:int [] nums = {7,2,8,9,1,12}; 解一:两两比较并记录下标,下次比较拿上次比较的最大值和上次比较的下一个进行比较,循环一次找出最大值 /** * @author 马向峰 ...
- 【转载】Java定时器的学习
前几看了一下<thinking in java>了解到java原生的Times类有两个问题: (1)Timer是启动单个线程来处理所有的时间任务,如果一个任务耗时很久,那么如果在执行这个过 ...
- poj 3264 Balanced Lineup【RMQ-ST查询区间最大最小值之差 +模板应用】
题目地址:http://poj.org/problem?id=3264 Sample Input 6 3 1 7 3 4 2 5 1 5 4 6 2 2 Sample Output 6 3 0分析:标 ...
- poj 1144 Network 【求一个网络的割点的个数 矩阵建图+模板应用】
题目地址:http://poj.org/problem?id=1144 题目:输入一个n,代表有n个节点(如果n==0就结束程序运行). 在当下n的这一组数据,可能会有若干行数据,每行先输入一个节点a ...
- 《python基础教程(第二版)》学习笔记 语句/循环/条件(第5章)
<python基础教程(第二版)>学习笔记 语句/循环/条件(第5章) print 'AB', 123 ==> AB 123 # 插入了一个空格print 'AB', 'CD' == ...