Android 服务和进程间通信
Android 操作系统中,服务是一个关键概念,服务是在后台运行没有用户界面的组件。Android 支持两种类型的服务:本地服务和远程服务。本地服务是设备上其他应用程序所不能访问的服务,只有包含该服务的应用程序才能使用这些类型的服务。远程服务可以从不包含该服务的应用程序进行访问。远程服务需用 Android 接口描述语言 (AIDL) 定义。
12.1 服务和进程间通信
Android 中的服务是通过 Context 的 startService() 方法启动的。服务一旦启动就会长期不间断地运行,直到客户调用服务的 Context,stopService() 方法或服务本身调用 stopSelf() 方法为止。当调用 Context.startService() 时,系统将实例化服务并调用服务的 OnStart() 方法,在服务启动后再调用 Context,startService() 方法就不会创建服务的另一个实例,但将会激活服务的 OnStart() 方法。
12.1.1 创建简单服务
Android 中的服务可以通过继承 Service 类并重写其方法来实现。Service 类具有许多方法,如 onStart()、onBind()、onCreate() 等,这些方法可以让我们对服务的概念有更深人的了解。
12.1.2 Android 服务
Android 服务可以分为两种类型:本地服务和远程服务。本地服务是通过 Context,startService() 启动的服务,服务一旦启动就会长期不间断地运行,直到客户调用服务的 Context,stopService() 方法或服务本身调用 stopSelf() 方法为止。
常见的本地服务例子有:
* 经由定时器网络 (如 Internet) 检索数据 (上传或下载信息);
* 任务执行器让应用程序的活动提交若干作业并排队处理。
12.2 HTTP 服务
HTTP 服务是 Android 中的一种常见的服务,HttpClient 是 Android 中的一个 HTTP 客户端,用于发送 HTTP 请求。HttpClient 的一般使用方式是:
1. 创建 HttpClient (或取得已有的引用);
2. 实例化 HTTP 的方法,诸如 PostMethod 或 GetMethod;
3. 设置 HTTP 参数名 / 值;
4. 用 HttpClient 执行 HTTP 调用;
5. 处理 HTTP 响应。
12.2.1 HttpClient 的 HTTP GET 请求
HttpClient 的 HTTP GET 请求是通过实例化 GetMethod 并设置参数来实现的。在执行 HTTP 调用时,HttpClient 会将请求发送到服务器,并返回响应结果。
12.2.2 HttpClient 的 HTTP POST 请求
HttpClient 的 HTTP POST 请求是通过实例化 PostMethod 并设置参数来实现的。在执行 HTTP 调用时,HttpClient 会将请求发送到服务器,并返回响应结果。HTTP POST 请求中,一般需要在 URL 的请求编码中用名字 / 值作为参数。为了用 HttpClient 完成这项工作,必须创建一个 NameValuePair 对象实例的列表,它封装了名称 / 值对。
Android 服务和进程间通信是 Android 操作系统中的一种关键概念,服务可以分为本地服务和远程服务,本地服务是通过 Context,startService() 启动的服务,而远程服务可以从不包含该服务的应用程序进行访问。HttpClient 是 Android 中的一个 HTTP 客户端,用于发送 HTTP 请求,可以实现 HTTP GET 和 POST 请求。