版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/zjh171/article/details/37738579

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

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

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

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

唉,都是本人的亲身经历,大家一定要引以为戒!

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

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

首先大家要知道的是,每一个进程都有一段独立的内存空间。所以两个进程之间传值本身就是效率不高,比較耗时的过程。

线程相较于进程的长处在于共享一段内存,因此传值速度比进程快,最快的当然莫过于同一个线程了。这些知识点是大家了解程序传值的前提。

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

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

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

activity,content provider,binder。service

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

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

如果有两个应用APP1和APP2。而且想通过app1中的ActivityA中的某个button或者其它控件的点击事件来启动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="zhudows.com" /> <data android:scheme="info" /> <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("zhudows.com",
Uri.parse("info://111"));  

this.startActivity(i);  

就可以。

android:两个应用之间怎样传值之activity的更多相关文章

  1. (转载) Android两个子线程之间通信

    Android两个子线程之间通信 标签: classthreadandroid子线程通信 2015-03-20 17:03 3239人阅读 评论(0) 收藏 举报  分类: 个人杂谈 版权声明:本文为 ...

  2. Android两个子线程之间通信

    Android中,相信主线程和子线程之间的通信大家都不陌生了吧.在一次面试经历中被问到了两个子线程之间是如何进行通信的.哎呦!这可蒙住我了.后来回家研究了下,分享给大家. 其实android中线程通信 ...

  3. Android两个页面之间的切换效果工具类

    import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; ...

  4. Windows Form父子两个窗体之间的传值测试

    1:先看测试的效果图: 2:全部的代码 using System; using System.Windows.Forms; namespace WindowsForms { public partia ...

  5. 两个html之间进行传值,如何进行?

    function turnto(){ var getval=document.getElementById("text").value; turngetval=escape(get ...

  6. 两个App之间的跳转 并传值

    两个App之间的传值最主要的是方法是 Intent intent = getPackageManager().getLaunchIntentForPackage("com.example.a ...

  7. iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)

    iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)   使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: ...

  8. 使用Delegate在两个ViewController之间传值

    以下就实现了使用Delegate在两个ViewController之间传值,这种场景一般应用在进入子界面输入信息,完后要把输入的信息回传给前一个界面的情况,比如修改用户个人信息,点击修改进入修改界面, ...

  9. 使用Block在两个界面之间传值

    首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界面. 第 ...

随机推荐

  1. git_全局忽略DS_store

    创建设置文件 vi ~/.gitignore_global 在文件里输入 /*.DS_Store .DS_Store 设置这个文件全局生效 git config --global core.exclu ...

  2. Centos7 安装 telnet 服务

    准备写一个 django-webtelnet(运维管理系统集成后管理网络设备),但是手边没有现成的网络设备资源可以测试,那就研究下 Centos7 下安装 telnet-server 吧. 安装 yu ...

  3. SonarQube搭建和使用教程

    我想使用 SonarQube 查阅代码 请问怎么做,现在只有一个要审查代码的项目

  4. 数据科学工作者(Data Scientist) 的日常工作内容包括什么

    数据科学工作者(Data Scientist) 的日常工作内容包括什么 众所周知,数据科学是这几年才火起来的概念,而应运而生的数据科学家(data scientist)明显缺乏清晰的录取标准和工作内容 ...

  5. HDU 6627 equation (分类讨论)

    2019 杭电多校 5 1004 题目链接:HDU 6627 比赛链接:2019 Multi-University Training Contest 5 Problem Description You ...

  6. 1089 Insert or Merge (25 分)

    According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...

  7. vmvare下centos7配置静态ip

    首先,将网络适配设置成为桥接模式 查看本机IP地址,ipconfig,记住ipv4地址和默认网关地址,等会配置的时候要用 启动Centos,进入终端模式,设置IP地址, 切换到这个目录下,cd /et ...

  8. 50-Ubuntu-其他命令-2-软硬链接示意图

    在Linux中,文件名和文件的数据是分开存储的. 使用ls -lh可以查看一个文件的硬链接数. 在日常工作中,几乎不会建立文件的硬链接数. 在Linux中,只有文件的硬链接数等于0才会被删除.如下图第 ...

  9. 如果通过cookies和localStorage取值?

    1. getCook : 设定setCookie值 let setCookie = setCookie('wan',data,7); function setCookie(c_name,value,e ...

  10. 字节流read方法返回值为什么是int不是byte

    01001000 01001000 01001000 11111111 01001000 -1的原码: 10000001 -1的反码: 11111110 -1的补码: 11111111 所以如果返回值 ...