首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android-使用Intent传递数据

向下一个活动传递数据 Intent不仅可以用来启动活动,还可以在启动活动的时候传递数据。...思路很简单,Intent提供了一系列putExtra()方法的重载, 可以把我们想要传递数据暂存在Intent中,启动了另一个活动后, 再把这些数据从Intent中取出就可以了。..., 接收两个参数, 第一个参数是键,用于后面从Intent中取值, 第二个参数是要传递数据。..., 没有指定任何“意图”,把要传递数据存放在Intent中,调用setResult()方法, 专门用于向上一个活动返回数据的,接收两个参数, 第一个参数用于上一个活动返回处理结果,一般使用RESULT_OK...和RESULT_CANCELED, 第二个参数把带有数据的Intent传递回去。

1K30

Android Intent 传递数据大小限制

Intent传递数据时,如果数据太大,可能会出现异常。比如App闪退,或是Intent发送不成功,logcat报错等等。 这就牵涉到一个问题:Intent 传递数据大小限制。...本文标题也可以改为“Binder传递数据大小限制”。 数据以Parcel对象的形式存放在Binder传递缓存中。...如果数据或返回值比传递buffer大,则此次传递调用失败并抛出TransactionTooLargeException异常。 Binder传递缓存有一个限定大小,通常是1Mb。...多个地方在进行传输时,即时它们各自传输的数据不超出大小限制,TransactionTooLargeException异常也可能会被抛出。 在使用Intent传递数据时,1Mb并不是安全上限。...为什么Binder要限制传输数据的大小 个人推测,作为一种IPC的方式,Binder并不是为传输大量数据而设计。 传输大量数据,可以考虑URL之类的方法。

1.5K30
您找到你想要的搜索结果了吗?
是的
没有找到

Android 最全 Intent 传递数据姿势

点击上面蓝色字体关注“IT大飞说” 置顶公众号(**ID:ITBigFly**)第一时间收到推送 作为一个 Android 开发人员,我们都是用过 Intent,用它来在组件之间传递数据...,所以说 Intent 是组件之间通信的使者,一般情况下,我们传递的都是一些比较简单的数据,并且都是基本的数据类型,写法也比较简单,今天我在这里说的是如何使用 Intent 传递对象及集合,我们知道Intent...Parcelable 接口的对象,这种方式比实现 Serializable 接口的方式稍微麻烦一点,需要重写方法,不过我们程序员都是比较懒的,给大家推荐一个插件: android-parcelable-intellij-plugin...集合数据 如果我们要传递的 List 集合,我们可以把 List 强转成 Serializable 类型,List 默认是实现了 Serializable 接口的,但是注意 List 的泛型类也必须要实现了...另外,默认 Intent 帮我们实现了,可以支持传递 String 数组等,也比较简单,这里就不赘述了,另外如果数据量比较大的情况下,建议使用第三方框架来进行传递数据,例如:EventBus 等来代替,

2.5K21

android利用剪切板传递数据

本文主要介绍android应用android系统中剪切板进行数据传递,首先讲解的是传递简单数据,然后讲解传递对象类型的数据。...所有实例均在android api 15下测试通过,所以先新建一个android应用程序。 – 传递简单类型数据 步骤一:修改主Activity,增加一个按钮,id为button。...进行传递对象" / </RelativeLayout 步骤二:在MainActivity类里面绑定button,以及利用剪切板进行数据传递,代码如下: @Override protected void...– 传递对象类型数据 传递对象类型数据无需再增加任何控件,只是需要增加一个实体类,便于我们进行数据传输。 步骤一:新建实体类MyData,实现Serializable接口,便于进行字节流的传输。...代码部分就算实现完了,相关涉及数据流转换的部分如有不清楚的可以百度看看类的使用,反正就是字节流写进去,字节流再读出来,Base64这个是android框架中工具类,可以进行加密解密。

87831

Android Intent传递数据大小限制详解

Intent传递数据时,如果数据太大,可能会出现异常。比如App闪退,或是Intent发送不成功,logcat报错等等。 这就牵涉到一个问题:Intent 传递数据大小限制。...本文标题也可以改为“Binder传递数据大小限制”。 数据以Parcel对象的形式存放在Binder传递缓存中。...如果数据或返回值比传递buffer大,则此次传递调用失败并抛出TransactionTooLargeException异常。 Binder传递缓存有一个限定大小,通常是1Mb。...多个地方在进行传输时,即时它们各自传输的数据不超出大小限制,TransactionTooLargeException异常也可能会被抛出。 在使用Intent传递数据时,1Mb并不是安全上限。...为什么Binder要限制传输数据的大小 个人推测,作为一种IPC的方式,Binder并不是为传输大量数据而设计。 传输大量数据,可以考虑URL之类的方法。

2.4K20

Android Activity之间的数据传递

我们来看看如何在Activity对象中进行值的传递,也是通过 Intent 对象的各种putExtra方法来进行传递: MainActivity: Intent intent=new Intent(this...还是可以用Intent传值,不过要对传递的对象作一些特殊处理,可以参考这篇博客: intent可以传递数据类型 三、先把数据存在本地,然后在下一个Activity中从本地取。...这种方式涉及到数据存储,Android数据的四种持久化存储方式SharedPreferences、SQLite、Content Provider和File,该方式的缺点就是要占用本地的资源,优点是数据可以在多个...这里推荐一篇博客,可以大概了解下Android的几种数据存储方式 四、使用EventBus框架 越来越多的项目开发中使用到EventBus这个框架,那什么是EventBus呢?...开发中我们都知道,很多时候要在Activty与Activty间,Activty与Fragment等之间传递数据进行交互,操作起来很不方便,我们以前可能会用到接口回调,或是用观察者模式来实现,或是发广播等等

1.6K21

Android使用剪切板传递数据

在Activity之间传递数据还可以利用一些技巧,不管windows还是Linux操作系统,都会支持一种叫剪切板的技术,也就是某一个程序将一些数据复制到剪切板上,然后其他的任何程序都可以从剪切板中获取数据...在Android-11(Android 3.0)版本之前,利用剪切板传递数据使用setText()和getText()方法,但是在此版本之后,这两个方法就被弃用,转而使用传递ClipData对象来代替。...相对于getText和setText而言,利用ClipData对象来传递数据,更符合面向对象的思想,而且所能传递数据类型也多样化了。 ...String类型的数据,如果需要传递一个对象,那么被传递的对象必须可序列化,序列化通过实现Serializable接口来标记。...,剪切板为Android系统管理的,所以在一个地方存入的数据,在这个Android设备上任何应用都可以访问的到,但是正是因为此设备访问的都是同一个剪切板,可能会导致当前程序存入的数据,在使用前被其他程序覆盖掉了

1.4K10

细说Android事件传递

一、View的dispatchTouchEvent和onTouchEvent 探讨Android事件传递机制前,明确android的两大基础控件类型:View和ViewGroup。...是所有事件的开始 (2)MotionEvent.ACTION_MOVE   滑动事件 (3)MotionEvent.ACTION_UP       与down对应,表示抬起 另外,明确事件传递机制的最终目的都是为了触发执行...对于View来说,事件传递机制有两个函数:dispatchTouchEvent负责分发事件,在dispatch***里又会调用onTouchEvent表示执行事件,或者说消费事件,结合源码分析其流程。...事件传递的入口是View的dispatchTouchEvent()函数:     /**      * Pass the touch screen...="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android

1.3K100

Android Activity之间的数据传递【转载】

1、向目标Activity【Main2Activity】传递数据: Intent intent=new Intent(this,Main2Activity.class); //可传递多种类型的数据...//回传数据用得Intent可以新建,也可以用getIntent() Intent intent=new Intent(); //设置要回传的数据 intent.putExtra("name","张三...setResult(1,intent); 回传时会把请求码、结果码、Intent数据封装为一个整体回传,请求码+结果码唯一标识回传的Intent 3、在上一级Activity中取出回传的数据 上一级...这个判断主要是可能有多个目标Activity向当前Activity回传数据,这些Intent数据中可能具有相同的key...数据回传很常用,比如发微信朋友圈时,进入相册选择好图片后,会回传选择的图片的信息。

1K20

Android触摸事件传递(上)

前言:智能手机早已成为我们今天身边必不可少的手持设备,iOS和Android也是目前主流的二大移动操作系统,当然也有越来越多的开发者加入到移动开发的工作中来。...我也是一名普通的Android码农,目前也在学习iOS开发中,有一些成长道路上的一些经验和教训,很早就想动手记录下来,再三下决心,终鼓起勇气,敲起键盘,有了下文,初次行文,文笔未免羞涩,大神轻点喷~    ...在Android中,系统将触摸事件包装成MotionEvent对象,同时MotionEvent类内部定义了ACTION_DOWN, ACTION_UP, ACTION_MOVE,ACTION_CANCEL...2.先说View,View触摸事件的开始还是dispatchTouchEvent(), 然后View会先将ev传递给TouchListener消费,如果TouchListener没有消费,就将ev传递给...这也验证了我们关于View触摸事件传递的第二部分,触摸事件ev优先被onTouchListener消费,然后再让传递给onTouchEvent消费。

1.1K30

Android TouchEvent事件传递机制

ViewGroup类中的源码实现就是{return false;}表示不拦截该事件, 事件将向下传递传递给其子View); 若手动重写该方法,使其返回true则表示拦截,事件将终止向下传递,...返回true则表示该View能处理该事件,事件将终止向上传递传递给其父View); 返回false表示不能处理,则把事件传递给其父View的onTouchEvent()方法来处理 先上一段代码演示...> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="...3.演示图片中第二份为什么会少了一个onInterceptTouchEvent调用 dispatchTouchEvent()方法中还有“记忆”的功能,如果第一次事件向下传递到某View,它把事件继续传递交给它的子...在下一次发生ACTION_DOWN事件的时候,还是会传递到该View的。

34120

Android触摸事件传递(下)

上一篇中,我说明了Android中Activity和View触摸事件的传递流程,现在我们来继续学习MotionEvent在View的容器ViewGroup中的传递过程。  ...ev向下传递给它的子View,换一句话说,这个时候,ViewGroup就变成了我们上一篇说的View,完全走View的触摸事件传递流程,同样的我们来写代码验证。  ...我们的按钮的触摸事件和它的父容器的触摸事件,都触发了,这是因为,我们EventBtn的onTouchListener方法和onTouchEvent方法都返回false,没有消费触摸事件,事件会向上继续传递...那么如果ViewGroup不拦截触摸事件,事件在它的子Views中又是如何传递的呢?    ...关于Android中ViewGroup的触摸事件传递就介绍到这里,难免很多地方有错误纰漏,但是我能够坚持把这些写出来,我觉得我已经有一点小小的提高了,很开心~~

99010

Android Touch事件传递机制

Touch事件传递拥有记忆功能,处理了一次事件传递,假定底层布局都没发完成事件,最后是由顶层父布局自己处理的。那么,相同事件再次产生的时候,顶层布局就不会向下分配,而是自己直接处理事件。...总结:   可以看出这个公司的小例子正好对应了Touch事件传递机制。一层一层往下传递,当下面无法完成时,又网上回传。...而手指抬起时再次发生了Touch事件,任然传递至TextView被解决。 ?...同样点击蓝色区域,那么传递的方式应该是先一级一级的分发给下属处理,到了TextView(实习生)后,没有下属了,他又处理不了,就往上回传递,知道传递到FrameLayout(开发组长)后,他将任务处理了...这里体现出了Touch时间传递机制的记忆性。 ?   此图是点击蓝色区域后log打印出的信息,值得注意的是,当FrameLayout按照传递的记忆性直接执行完成任务时,是不会触发拦截方法的。 ?

1.1K30

Android AIDL 传递对象(Parceable)

教程 (一)—— 简单的示例 Android AIDL 传递对象(Parceable) 在上一篇文章中 Android AIDL 教程 (一)—— 简单的示例,我们介绍了怎样使用 AIDL 进行进程间的通讯...,并简单写了一个 Demo,今天,让我们一起来学习怎样在 AIDL 中传递对象。...Java 编程语言中的所有原语类型(如 int、long、char、boolean 等等) String CharSequence List List 中的所有元素都必须是以上列表中支持的数据类型、...Map Map 中的所有元素都必须是以上列表中支持的数据类型、其他 AIDL 生成的接口或您声明的可打包类型。...这样才能在服务端和客户端之间传递 package xj.musicserver; // Declare any non-default types here with import statements

67620

Android基础】利用Intent在Activity之间传递数据

启动一个Activity: 在用startActivityForResult()来启动一个Activity时,Intent的写法与startActivity()是一样的,没有任何区别,只是你需要传递一个额外的...Integer的变量作为启动参数,当启动的那个Activity退出时这个参数会被作为回调函数的一个参数,用来区分返回结果,也就是说你启动Activity时传递的参数(requestCode)和返回结果时的那个参数...* * @throws android.content.ActivityNotFoundException * * @see #startActivity...比如:联系人应用是返回的联系人URI,相机返回的是Bitmap数据。...content://result_uri"); setResult(Activity.RESULT_OK, result); finish(); 以上就是使用Intent在不同Activity进行信息传递和沟通的讲解

1.4K60

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券