android进程间通信作用,Android进程间通信:两个应用之间如何传值

两个应用之间如何传值,其实这个标题太水了,专业的说法是“两个进程间如何传值”,什么?!还不够专业,好吧,你淫了!“进程间通信”其实更专业,这回你总满意了吧!顺带说一下,简写成IPC:Inter-Process Communication。

兄弟们,如果你们从搜索引擎或者其他途径找到这篇文章的话,说明你的Android技术已经提升到一个很高的层次了哦,嘿嘿~为什么这么说呢?因为无论哪个平台,线程跟进程都是绝对的重点跟难点。

本文说的进程间传值只是进程间通信的一个特例,还有其他用处比如,进程控制:让一个进程杀死另一个进程之类的。当然这个不在本文讨论范围之内,大家不知道也无所谓的。

做事情要抓住重点跟难点,好比追女生,重点就是一开始不能表现出来。。。一定要以朋友的身份好好相处,等时间成熟就顺利成章了。

最近确实蛮郁闷的,一方面技术上没有特别突破,另一方面朋友又相继离职,搞得我上班没劲,下班没人玩。真惨!

废话不多说了,开始我们的传值旅程吧。

首先大家要知道的是,每个进程都有一段独立的内存空间,所以两个进程之间传值本身就是效率不高,比较耗时的过程。线程相较于进程的优点在于共享一段内存,因此传值速度比进程快,最快的当然莫过于同一个线程了。这些知识点是大家了解程序传值的前提。

linux中进程间传值的方式有如下几种:

管道(pipe),消息队列,信号,共享内存,套接口。

android中进程间的通信方法有以下几种:

activity,content provider,binder,service

其实android的进程间通信是建立在linux之上的,虽然名字略有不同,但底层实现还是通过以上四种方式。

1.Activity实现两个App之间传值

假设有两个应用APP1和APP2,并且想通过app1中的ActivityA中的某个按钮或者其他控件的点击事件来启动APP2中的ActivityB。步骤如下:

1.将ActivityB暴露出来

比如现在有一个LoginActivity需要暴露出来,则可以通过修改manifest来实现

android:name="com.saike.android.grape.controller.personal.LoginActivity"

android:screenOrientation="portrait"

android:windowSoftInputMode="adjustResize|stateHidden">

如图,上面代码的功能我先做个介绍:

前面几行的我就不多说了,主要是里面那几句,其实从名字就可以看出这个标签的作用:用于过滤intent,那么intent是啥,我相信也不用多说了,intent是Activity中传值时不可忽略的类。

在将上面这段之前我们先看看我们比较熟悉的一段代码:

这个对我们来说再熟悉不过了,因为我们在写任何一个应用的时候都要指明启动应用的activity,此时必须要使用标签action,并赋值他的属性android:name 为 android.intent.action.main

这个属性值的意思其实大概就类似是表示程序的“main”函数从这个activity开始。

然后在我们需要启动这个activity的地方调用方法:

Intenti=newIntent("xx.com",Uri.parse("value://111"));

this.startActivity(i);

即可。

原文:http://blog.csdn.net/caoyouxing/article/details/42392241

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值