远程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) 知识点相关推荐

  1. Android的服务(Service)(三)Service客户端的绑定与跨进程

    继续上篇的分析,接下来是第三个问题"Service与其客户端的绑定如何实现,即跨进程调用问题" (一).Service的生命周期 (二).Service的自动重启问题 (三).Se ...

  2. android service交互,Android Activity与Service的交互方式

    参考: http://blog.csdn.net/gebitan505/article/details/18151203 实现更新下载进度的功能 1. 通过广播交互 Server端将目前的下载进度,通 ...

  3. Service服务Android

    前言 Service作为Android四大组件之一,应用非常广泛 本文将介绍对Service进行全面介绍(基础认识.生命周期.使用和应用场景) 目录 1. 基础知识 定义:服务,属于Android中的 ...

  4. Service与Android系统实现(1)-- 应用程序里的Service

    原址:http://blog.csdn.net/21cnbao/article/details/8086487 特别声明:本系列文章作者系吴赫.分多次连载,讲述Android Service(Java ...

  5. android app渗透测试-Activity、Service

    Android App中可能出现的安全漏洞的类型: 协议--通信协议(本地.网络),协议大部分是由C/C++实现,存在以下安全问题:通信数据引发的逻辑漏洞:通信数据引发的缓冲区溢出等可能导致远程代码执 ...

  6. Android 保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护

    本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context  ↳an ...

  7. Android无界面编程之使用Service

    在上节中我记录了Service的生命周期,现在就来熟悉一下如何来使用Service和Service有哪些特别需要注意的知识点. 基本流程: 一.建立Service,通过编写子类继承Service或In ...

  8. android exchange服务,带有“ Service com.android.exchange.ExchangeService

    我正在用Android开发一个非常简单的应用程序.我制作了一个启动屏幕,主菜单以及一个带有单选按钮和一个按钮的页面(该按钮会根据选中的单选按钮播放声音).该应用程序运行正常(不会崩溃),但是我一直在l ...

  9. 自动生成Android界面,面向Android的Web Service界面自动生成技术研究

    摘要: 据统计,开发人员在开发应用程序的过程中,接近一半的代码用于用户界面部分,大约一半的运行时间用于执行这一部分.所以,减少用户界面部分的开发代码和运行时间,能有效提高程序的运行效率.智能家居中,由 ...

  10. Android移动开发之【Android实战项目】后台服务Service

    桌面应用程序:可见 服务:不可见 长期在后台运行 帮助应用执行耗时的操作 安卓的服务:安卓四大组件之一 不可见 后台长期运行 界面与服务有时候要执行数据交互 文章目录 如何创建服务 创建一个类 继承S ...

最新文章

  1. 未来智能实验室成立,建设世界第一个智能系统智商评测和趋势研究机构
  2. 500线电机光电码盘
  3. Windows 10 安全移动 MySQL 数据库的存储位置
  4. MySQL事务处理与事务隔离(锁机制)
  5. 课程一(Neural Networks and Deep Learning),第四周(Deep Neural Networks)—— 0.学习目标...
  6. c/c++这么难学,那么学会了究竟有多牛X呢?
  7. Drawable之color示例
  8. 《软件体系结构》第二章 软件体系结构建模
  9. Vivado 2019使用教程
  10. 利用 IntelliJ IDEA 进行代码对比的方法
  11. 【QT】一份值得学习的QT视频教程
  12. cl.b8y.php,群晖如何重装系统
  13. 〖Python接口自动化测试实战篇⑥〗- 接口抓包工具 Chrome 的使用
  14. 音视频开发系列(46)运算符重载、继承、多态、模版
  15. vue时间格式2021-11-21T12:30:00.000+00:00转换yyyy-MM-dd HH:mm:ss
  16. 粮仓分布式多点测温的简单参考方案
  17. 网络推广平台有哪些优势?
  18. PP体育APP产品体验报告
  19. 3DMAX入门教程 | 命令面板 标准基本体的创建和参数
  20. 马毅沈向洋曹颖最新AI综述火了!耗时3月打造,网友:必读论文

热门文章

  1. Win32下的录音编程
  2. 被女孩子冷落了,最适合看的20句话
  3. Python自动化面试常见的编程题及答案
  4. C++工程师面试题大全
  5. 想搞IT做程序员,要看哪些书?
  6. dp线和hdmi区别_HDMI铜线与光纤线有啥区别?为什么铜线传播速度更快?看完涨知识...
  7. 这个处理不同基因组区域关系的工具集很不错!
  8. 将自己名字PS到他人论文上,并推文说在Nature上发了新文章,如此操作你见过吗?...
  9. Nature子刊:是穷是富与基因有关?大数据分析发现149个与收入相关基因位点
  10. 别人的电子书,你的电子书,都在bookdown