Android进程间通信:两个应用之间如何传值 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

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

发表时间:2020-10-19

发布人:葵宇科技

浏览次数:68


两个应用之间若何传值,其拭魅这个标题太水了,专业的说法是“两个过程间若何传值”,什么?!还不敷专业,好吧,你淫了!“过程间通信”其实更专业,这回你总知足了吧!顺带说一下,简写成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来实现
<activity  
            android:name="com.saike.android.grape.controller.personal.LoginActivity"  
            android:screenOrientation="portrait"  
            android:windowSoftInputMode="adjustResize|stateHidden" >  
            <intent-filter>  
                <action android:name="xx.com" />  
  
                <data android:scheme="value" />  
  
                <category android:name="android.intent.category.DEFAULT" />  
            </intent-filter>  
</activity>
如图,膳绫擎代码的功能我先做个介绍:
前面几行的我就不多说了,主如果<intent-filter>琅绫擎那几句,其实大年夜名字就可以看出这个标签的感化:用于过滤intent,那么intent是啥,我信赖也不消多说了,intent是Activity中传值时弗成忽视的类。
在将膳绫擎这段之前我们先看看我们比较熟悉的一段代码:
<intent-filter>  
                <action android:name="android.intent.action.MAIN" />  
  
                <category android:name="android.intent.category.LAUNCHER" />  
</intent-filter>  
这个对我们来说袈滟熟悉不过了,因为我们在写任何一个应用的时刻都要指明启动应用的activity,此时必须要应用标签action,并赋值他的属性android:name 为 android.intent.action.main
这个属性值的意思其实大年夜概就类似是表示法度榜样的“main”函数大年夜这个activity开端。
然后在我们须要启动这个activity的处所调用办法:
Intent i =  new Intent("xx.com", Uri.parse("value://111"));  
this.startActivity(i); 

即可。

相关案例查看更多