android service 远程,android service(远程service) 知识点
远程service能够实现多个应用共享一个service,从而实现各个应用之间的通信。
远程service使用的技术是AIDL。创建远程服务步骤:
1. 创建包名,在包下创建一个*.aidl文件,在文件里边定义接口。
package com.example.servicetest.services;
interface MyAIDLService {
int plus(int a, int b);
String toUpperCase(String str);
}
注意,定义接口时,不要使用public等关键字。
2. 在服务里边,创建IBander子类对象。
private MyAIDLService.Stub mBinder = new Stub() {
@Override
public String toUpperCase(String str) throws RemoteException {
// TODO Auto-generated method stub
return str.toUpperCase();
}
@Override
public int plus(int a, int b) throws RemoteException {
// TODO Auto-generated method stub
return a + b;
}
};
Stub继承Binder类,并实现了MyAIDLService接口。所以,我们只要重写我们自己接口中的方法即可。
3. 在onBind()方法中,返回IBander子类对象。
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return mBinder;
}
4. 在AndroidManifest.xml文件中配置服务为远程服务。
android:name="com.example.servicetest.services.MyService"
android:process=":remote"
>
配置远程服务时,一定要在名称前边添加":",所以配置成:remote。不然会出现“ INSTALL_PARSE_FAILED_MANIFEST_MALFORMED”部署异常。
通过以上的配置,就能在远程服务所在的应用下使用远程服务了。但,在另一个应用里边如何使用这个远程服务呢?
具体步骤如下:
1. 将*.aidl文件和所在的包,一起包括到自己应用src目录下。
2. 创建ServiceConnection子类对象。
private ServiceConnection conn = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
// TODO Auto-generated method stub
// 和远程服务连接成功以后,就会调用次方法
try {
MyAIDLService binder = MyAIDLService.Stub.asInterface(service);
int result = binder.plus(1, 2);
String str = binder.toUpperCase("hello world");
System.out.println("result=" + result);
System.out.println("str=" + str);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};通过方法MyAIDLService.Stub.asInterface(service)就能拿到接口对象。从而就能够调用服务里边的方法了。
3. 通过远程服务提供的action就可以bindService。
android service 远程,android service(远程service) 知识点相关推荐
- Android的服务(Service)(三)Service客户端的绑定与跨进程
继续上篇的分析,接下来是第三个问题"Service与其客户端的绑定如何实现,即跨进程调用问题" (一).Service的生命周期 (二).Service的自动重启问题 (三).Se ...
- android service交互,Android Activity与Service的交互方式
参考: http://blog.csdn.net/gebitan505/article/details/18151203 实现更新下载进度的功能 1. 通过广播交互 Server端将目前的下载进度,通 ...
- Service服务Android
前言 Service作为Android四大组件之一,应用非常广泛 本文将介绍对Service进行全面介绍(基础认识.生命周期.使用和应用场景) 目录 1. 基础知识 定义:服务,属于Android中的 ...
- Service与Android系统实现(1)-- 应用程序里的Service
原址:http://blog.csdn.net/21cnbao/article/details/8086487 特别声明:本系列文章作者系吴赫.分多次连载,讲述Android Service(Java ...
- android app渗透测试-Activity、Service
Android App中可能出现的安全漏洞的类型: 协议--通信协议(本地.网络),协议大部分是由C/C++实现,存在以下安全问题:通信数据引发的逻辑漏洞:通信数据引发的缓冲区溢出等可能导致远程代码执 ...
- Android 保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护
本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context ↳an ...
- Android无界面编程之使用Service
在上节中我记录了Service的生命周期,现在就来熟悉一下如何来使用Service和Service有哪些特别需要注意的知识点. 基本流程: 一.建立Service,通过编写子类继承Service或In ...
- android exchange服务,带有“ Service com.android.exchange.ExchangeService
我正在用Android开发一个非常简单的应用程序.我制作了一个启动屏幕,主菜单以及一个带有单选按钮和一个按钮的页面(该按钮会根据选中的单选按钮播放声音).该应用程序运行正常(不会崩溃),但是我一直在l ...
- 自动生成Android界面,面向Android的Web Service界面自动生成技术研究
摘要: 据统计,开发人员在开发应用程序的过程中,接近一半的代码用于用户界面部分,大约一半的运行时间用于执行这一部分.所以,减少用户界面部分的开发代码和运行时间,能有效提高程序的运行效率.智能家居中,由 ...
- Android移动开发之【Android实战项目】后台服务Service
桌面应用程序:可见 服务:不可见 长期在后台运行 帮助应用执行耗时的操作 安卓的服务:安卓四大组件之一 不可见 后台长期运行 界面与服务有时候要执行数据交互 文章目录 如何创建服务 创建一个类 继承S ...
最新文章
- 未来智能实验室成立,建设世界第一个智能系统智商评测和趋势研究机构
- 500线电机光电码盘
- Windows 10 安全移动 MySQL 数据库的存储位置
- MySQL事务处理与事务隔离(锁机制)
- 课程一(Neural Networks and Deep Learning),第四周(Deep Neural Networks)—— 0.学习目标...
- c/c++这么难学,那么学会了究竟有多牛X呢?
- Drawable之color示例
- 《软件体系结构》第二章 软件体系结构建模
- Vivado 2019使用教程
- 利用 IntelliJ IDEA 进行代码对比的方法
- 【QT】一份值得学习的QT视频教程
- cl.b8y.php,群晖如何重装系统
- 〖Python接口自动化测试实战篇⑥〗- 接口抓包工具 Chrome 的使用
- 音视频开发系列(46)运算符重载、继承、多态、模版
- vue时间格式2021-11-21T12:30:00.000+00:00转换yyyy-MM-dd HH:mm:ss
- 粮仓分布式多点测温的简单参考方案
- 网络推广平台有哪些优势?
- PP体育APP产品体验报告
- 3DMAX入门教程 | 命令面板 标准基本体的创建和参数
- 马毅沈向洋曹颖最新AI综述火了!耗时3月打造,网友:必读论文
热门文章
- Win32下的录音编程
- 被女孩子冷落了,最适合看的20句话
- Python自动化面试常见的编程题及答案
- C++工程师面试题大全
- 想搞IT做程序员,要看哪些书?
- dp线和hdmi区别_HDMI铜线与光纤线有啥区别?为什么铜线传播速度更快?看完涨知识...
- 这个处理不同基因组区域关系的工具集很不错!
- 将自己名字PS到他人论文上,并推文说在Nature上发了新文章,如此操作你见过吗?...
- Nature子刊:是穷是富与基因有关?大数据分析发现149个与收入相关基因位点
- 别人的电子书,你的电子书,都在bookdown