【Android】远程服务(Remote Service)的使用
最近做项目碰到了这个,貌似也没在意过,随便写写总结一下。
1,远程启动服务。
A应用定义服务如下:
<serviceandroid:name="com.pro.testignore.MyService"android:enabled="true"android:exported="true"android:process=":remote"><intent-filter><!-- 为Service组件的intent-filter配置action --><action android:name="com.pro.testignore.MyService"></action></intent-filter></service>
B应用调用远程服务代码如下:
// 5.0以后的隐式调用方式Intent mIntent = new Intent();mIntent.setAction("com.pro.testignore.MyService");mIntent.setPackage("com.pro.testignore");Intent eintent = new Intent(getExplicitIntent(this,mIntent));startService(eintent);
public static Intent getExplicitIntent(Context context, Intent implicitIntent) {// Retrieve all services that can match the given intentPackageManager pm = context.getPackageManager();List<ResolveInfo> resolveInfo = pm.queryIntentServices(implicitIntent, 0);// Make sure only one match was foundif (resolveInfo == null || resolveInfo.size() != 1) {return null;}// Get component info and create ComponentNameResolveInfo serviceInfo = resolveInfo.get(0);String packageName = serviceInfo.serviceInfo.packageName;String className = serviceInfo.serviceInfo.name;ComponentName component = new ComponentName(packageName, className);// Create a new intent. Use the old one for extras and such reuseIntent explicitIntent = new Intent(implicitIntent);// Set the component to be explicitexplicitIntent.setComponent(component);return explicitIntent;}
以下理论为转载内容
====================================================================================
1.远程服务简介
- 什么是远程服务
远程服务(Remote Service)也被称之为独立进程,它不受其它进程影响,可以为其它应用程序提供调用的接口——实际上就是进程间通信IPC(Inter-Process Communication),Android提供了AIDL(Android Interface Definition Language,接口描述语言)工具来帮助进程间接口的建立。
在Android中,不同的应用属于不同的进程(Process),一个进程不能访问其它进程的存储(可以通过ContentProvider实现,如:通讯录的读取)。
- 远程服务的适用场景
一般适用于为其它应用程序提供公共服务的Service,这种Service即为系统常驻的Service(如:天气服务等)。 - 远程服务的优缺点
- 优点
1.远程服务有自己的独立进程,不会受到其它进程的影响;
2.可以被其它进程复用,提供公共服务;
3.具有很高的灵活性。 - 缺点
相对普通服务,占用系统资源较多,使用AIDL进行IPC也相对麻烦。
更多进程间通讯查阅AIDL资料吧。
【Android】远程服务(Remote Service)的使用相关推荐
- Android中的service
简介 : 创建一个服务 class TestService extends Service {@Overridepublic void onCreate() {super.onCreate();}@O ...
- android如何保证service不被杀死
Android开发之如何保证Service不被杀掉(broadcast+system/app) http://blog.csdn.net/mad1989/article/details/2249251 ...
- Android组件之Service 与常用系统服务用法详解
一.服务 1.1.后台运行.不可见.没有界面,优先级高于activity,主要用于组件之间交互和执行后台任务.同样在主线程中运行,不能做耗时操作,超过20S会出现ANR. 1.2. 本地服务Local ...
- Android中的service全面总结
文章出处:http://www.cnblogs.com/newcj/archive/2011/05/30/2061370.html 1.Service的种类 按运行地点分类: 类别 区别 优点 缺点 ...
- Android 中的 Service 全面总结
1.Service的种类 按运行地点分类: 类别 区别 优点 缺点 应用 本地服务(Local) 该服务依附在主进程上, 服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Loc ...
- Android 中的 Service 全面总结(转)
转自:http://www.cnblogs.com/newcj/archive/2011/05/30/2061370.html# Android 中的 Service 全面总结 1.Service的种 ...
- Android服务之Service(其一)
转载地址:http://www.cnblogs.com/zhangdongzi/archive/2012/01/08/2316711.html android中服务是运行在后台的东西,级别与activ ...
- (android实战)Service 生命周期和使用注意项
一.基础知识 服务一般分为两种: 1:本地服务, Local Service 用于应用程序内部.在Service可以调用Context.startService()启动,调用Context.stopS ...
- Android远程服务与本地服务的特点以及功能差异
最近又重新看了点IPC的相关知识,以前看过不少Binder的知识,看到c++层思路就很模糊了,回头再看也算是一种学习. IPC全称为:interprocess communication内部进程间通信 ...
最新文章
- java绘等高线图_Matplotlib中的极坐标等高线图
- windows10中 git 本地仓库的使用
- java中值传递和引用传递
- 解决为什么JDK要带着JRE一起下载
- 如何让你的SQL运行得更快(一)
- awk---Linux下文本处理五大神器之二
- 小米6怎么刷入鸿蒙,小米6成功刷入统信UOS系统 刷机包开放下载
- 采用sFlow工具实现流量监控--实验
- Win10便签删除了怎么恢复?便签删除了的恢复方法
- 【PS功能学习】04:祖传抠图技法
- 『Java CVE』CVE-2022-33980: Apache Commons Configuration 读文件RCE
- 微型博客网站Twitter打假
- 搜狗输入法转语音体验报告
- javascript 实现 QQshow
- Linux、GUN/Linux、GUN、GPL以及各个发行版本详细介绍-扫盲篇
- 国产免费数据仓库ETL调度自动化运维专家—TASKCTL
- 学生成绩管理系统 c++版
- wps 字体对系统无效_“字体”侵权,你是否也中招?
- js object 动态生成key
- 13-19年复旦大学计算机学院研究生复试机试题