zoukankan      html  css  js  c++  java
  • android:两个应用之间怎样传值之activity

    版权声明:本文为博主原创文章。未经博主同意不得转载。 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);  

    就可以。




查看全文
  • 相关阅读:
    前端安全问题
    windows下nginx的安装及使用方法入门
    windows下安装nginx
    获取div的高度
    HAOI2015 简要题解
    JLOI2016 简要题解
    JLOI2015 DAY2 简要题解
    JLOI2015 DAY1 简要题解
    SCOI2016 Day2 简要题解
    CS Academy Sliding Product Sum(组合数)
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10839489.html
  • Copyright © 2011-2022 走看看