android:两个应用之间如何传值之activity

两个应用之间如何传值,其实这个标题太水了,专业的说法是“两个进程间如何传值”,什么?!还不够专业,好吧,你淫了!“进程间通信”其实更专业,这回你总满意了吧!顺带说一下,简写成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="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,布布扣,bubuko.com

时间: 2024-12-21 06:28:11

android:两个应用之间如何传值之activity的相关文章

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

两个应用之间如何传值,其实这个标题太水了,专业的说法是"两个进程间如何传值",什么?!还不够专业,好吧,你淫了!"进程间通信"其实更专业,这回你总满意了吧!顺带说一下,简写成IPC:Inter-Process Communication. 兄弟们,如果你们从搜索引擎或者其他途径找到这篇文章的话,说明你的Android技术已经提升到一个很高的层次了哦,嘿嘿-为什么这么说呢?因为无论哪个平台,线程跟进程都是绝对的重点跟难点. 本文说的进程间传值只是进程间通信的一个特例,

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

import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Build; import android.widget.Toast; public class ActivityAnimationUtil { private Context context; pr

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

Android两个子线程之间通信 标签: classthreadandroid子线程通信 2015-03-20 17:03 3239人阅读 评论(0) 收藏 举报  分类: 个人杂谈 版权声明:本文为博主原创文章,未经博主允许不得转载. Android中,相信主线程和子线程之间的通信大家都不陌生了吧.在一次面试经历中被问到了两个子线程之间是如何进行通信的.哎呦!这可蒙住我了.后来回家研究了下,分享给大家. 其实android中线程通信无非就是handler和looper的操作. 一般情况下的主线

Android两个子线程之间通信

Android中,相信主线程和子线程之间的通信大家都不陌生了吧.在一次面试经历中被问到了两个子线程之间是如何进行通信的.哎呦!这可蒙住我了.后来回家研究了下,分享给大家. 其实android中线程通信无非就是handler和looper的操作. 一般情况下的主线程和子线程之间的通信,都是通过主线程中的handler把子线程中的message发给主线程中的looper,或者,主线程中的handler通过post向looper中发送一个runnable.looper默认存在于main线程中.那么子线

如何实现两个页面之间进行传值

参考地址:http://blog.csdn.net/hlk_1135/article/details/52809468 B/S页面间通信 HTTP是无状态的协议.Web页面本身无法向下一个页面传递信息,如果需要让下一个页面得知该页面中的值,除非通过服务器.因此,Web页面保持状态并传递给其它页面,是一个重要的技术. Web页面之间传递数据,是Web程序的重要功能 在HTTP协议中一共有4种方法来完成这件事情: 1)URL传值:2)表单传值:3)Cookie方法:4)Session方法: 一.UR

两个App之间的跳转 并传值

两个App之间的传值最主要的是方法是 Intent intent = getPackageManager().getLaunchIntentForPackage("com.example.app2");其他的传值用Intent完成就行 与activity之间的传值类似 (还可以自定义activity的权限) APP1: package com.example.app1; import android.content.Intent; import android.support.v7.a

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

使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: 首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界面. 第二个界面的只有一个UITextField,是为了输入文字,当输入文字,并且返回第一个界面的时候,当第二个视图将要消失的时候,就将第二个界面上TextFiled中的文字传给第一个界面,并且显

界面之间的传值

用导航的两个视图之间的传值: 方式有三种: 1.属性传值:第一个页面到第二个页面的传值 2.协议传值:第二个页面到第一个页面的传值 3.Block传值:第二个页面到第一个页面的传值 介绍属性和代理传值: 1.分别在两个视图上面都添加输入框和label,并且都设置为属性 2.第一个页面到第二个页面的传值,给第二个页面设置一个字符串属性,用来接受第一个页面传过来的值,然后在第二个页面给label赋值,(注:因为第一个页面到第二个页面label重新开辟空间,所以,在直接在这里给label赋值的没有用的

Vue组件之间的传值方法

在vue当中有两种组件之间的传值方法,分别是 * 父子组件* 之间的传值和* 非父子组件 *之间的传值方法 父子组件之间的传值方法 父子组件之间的传值分为两种 * 父组件给子组件传值 子组件给父组件之间的传值 父组件给子组件传值方法 // 父 <div id = "app"> <my-content></my-content> </div> // 子 <template id="content"> <