向下一个活动传递数据 Intent不仅可以用来启动活动,还可以在启动活动的时候传递数据。...思路很简单,Intent提供了一系列putExtra()方法的重载, 可以把我们想要传递的数据暂存在Intent中,启动了另一个活动后, 再把这些数据从Intent中取出就可以了。..., 接收两个参数, 第一个参数是键,用于后面从Intent中取值, 第二个参数是要传递的数据。..., 没有指定任何“意图”,把要传递的数据存放在Intent中,调用setResult()方法, 专门用于向上一个活动返回数据的,接收两个参数, 第一个参数用于上一个活动返回处理结果,一般使用RESULT_OK...和RESULT_CANCELED, 第二个参数把带有数据的Intent传递回去。
Intent传递数据时,如果数据太大,可能会出现异常。比如App闪退,或是Intent发送不成功,logcat报错等等。 这就牵涉到一个问题:Intent 传递数据大小限制。...本文标题也可以改为“Binder传递数据大小限制”。 数据以Parcel对象的形式存放在Binder传递缓存中。...如果数据或返回值比传递buffer大,则此次传递调用失败并抛出TransactionTooLargeException异常。 Binder传递缓存有一个限定大小,通常是1Mb。...多个地方在进行传输时,即时它们各自传输的数据不超出大小限制,TransactionTooLargeException异常也可能会被抛出。 在使用Intent传递数据时,1Mb并不是安全上限。...为什么Binder要限制传输数据的大小 个人推测,作为一种IPC的方式,Binder并不是为传输大量数据而设计。 传输大量数据,可以考虑URL之类的方法。
Intent数据传递 List 传递List传递List的方法 ArrayList info = new ArrayList(); info.add(name);...传递Object Serializable方式 传递Object需要先序列化,序列化有两种方式:Serializable和Parcelable。...该方法将类的数据写入外部提供的Parcel中。 声明:writeToParcel(Parcel dest, int flags)。 2)describeContents方法。...2.startActivityForResult(intent, -1)函数,第二个参数小于0,应该要大于0 3.启动模式为Android:launchMode=”singleTask”和android...复写onBackPressed()方法的时候,把自己写的代码放在super.onBackPressed()上面,这是因为onBackPressed()后activity直接finish了,需要在之前保存传递的数据
点击上面蓝色字体关注“IT大飞说” 置顶公众号(**ID:ITBigFly**)第一时间收到推送 作为一个 Android 开发人员,我们都是用过 Intent,用它来在组件之间传递数据...,所以说 Intent 是组件之间通信的使者,一般情况下,我们传递的都是一些比较简单的数据,并且都是基本的数据类型,写法也比较简单,今天我在这里说的是如何使用 Intent 传递对象及集合,我们知道Intent...Parcelable 接口的对象,这种方式比实现 Serializable 接口的方式稍微麻烦一点,需要重写方法,不过我们程序员都是比较懒的,给大家推荐一个插件: android-parcelable-intellij-plugin...集合数据 如果我们要传递的 List 集合,我们可以把 List 强转成 Serializable 类型,List 默认是实现了 Serializable 接口的,但是注意 List 的泛型类也必须要实现了...另外,默认 Intent 帮我们实现了,可以支持传递 String 数组等,也比较简单,这里就不赘述了,另外如果数据量比较大的情况下,建议使用第三方框架来进行传递数据,例如:EventBus 等来代替,
本文主要介绍android应用android系统中剪切板进行数据的传递,首先讲解的是传递简单数据,然后讲解传递对象类型的数据。...所有实例均在android api 15下测试通过,所以先新建一个android应用程序。 – 传递简单类型数据 步骤一:修改主Activity,增加一个按钮,id为button。...进行传递对象" / </RelativeLayout 步骤二:在MainActivity类里面绑定button,以及利用剪切板进行数据传递,代码如下: @Override protected void...– 传递对象类型数据 传递对象类型数据无需再增加任何控件,只是需要增加一个实体类,便于我们进行数据传输。 步骤一:新建实体类MyData,实现Serializable接口,便于进行字节流的传输。...代码部分就算实现完了,相关涉及数据流转换的部分如有不清楚的可以百度看看类的使用,反正就是字节流写进去,字节流再读出来,Base64这个是android框架中工具类,可以进行加密解密。
我们来看看如何在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等之间传递数据进行交互,操作起来很不方便,我们以前可能会用到接口回调,或是用观察者模式来实现,或是发广播等等
问题: 从页面A传递一个Bean对象给页面B,Bean对象里有一个List集合 Bean: public class Bean implements Serializable { private...java.lang.RuntimeException: Parcelable encountered IOException writing serializable object 查了很久发现原因,传递的这个...List是在数据源中使用subList(0,5)处理过的,而处理时是好的。
在Activity之间传递数据还可以利用一些技巧,不管windows还是Linux操作系统,都会支持一种叫剪切板的技术,也就是某一个程序将一些数据复制到剪切板上,然后其他的任何程序都可以从剪切板中获取数据...在Android-11(Android 3.0)版本之前,利用剪切板传递数据使用setText()和getText()方法,但是在此版本之后,这两个方法就被弃用,转而使用传递ClipData对象来代替。...相对于getText和setText而言,利用ClipData对象来传递数据,更符合面向对象的思想,而且所能传递的数据类型也多样化了。 ...String类型的数据,如果需要传递一个对象,那么被传递的对象必须可序列化,序列化通过实现Serializable接口来标记。...,剪切板为Android系统管理的,所以在一个地方存入的数据,在这个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
参考地址 http://blog.csdn.net/lmj623565791/article/details/47911083 client 基础配置
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...数据回传很常用,比如发微信朋友圈时,进入相册选择好图片后,会回传选择的图片的信息。
前言:智能手机早已成为我们今天身边必不可少的手持设备,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消费。
、View、ViewGroup三者的触摸事件传递机制,传递包括三个阶段:分发、拦截、消费。...二.触摸事件的传递阶段 1.分发(Dispatch) 在Android系统中所有的触摸事件都是由 dispatchTouchEvent 方法进行分发的。...<com.mvp.chenzhesheng.androidadvance.MyRelativeLayout xmlns:android="http://schemas.android.com/apk/...res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android.../text_view" android:clickable="true" android:layout_width="wrap_content" android:layout_height=
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的。
教程 (一)—— 简单的示例 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
上一篇中,我说明了Android中Activity和View触摸事件的传递流程,现在我们来继续学习MotionEvent在View的容器ViewGroup中的传递过程。 ...ev向下传递给它的子View,换一句话说,这个时候,ViewGroup就变成了我们上一篇说的View,完全走View的触摸事件传递流程,同样的我们来写代码验证。 ...我们的按钮的触摸事件和它的父容器的触摸事件,都触发了,这是因为,我们EventBtn的onTouchListener方法和onTouchEvent方法都返回false,没有消费触摸事件,事件会向上继续传递...那么如果ViewGroup不拦截触摸事件,事件在它的子Views中又是如何传递的呢? ...关于Android中ViewGroup的触摸事件传递就介绍到这里,难免很多地方有错误纰漏,但是我能够坚持把这些写出来,我觉得我已经有一点小小的提高了,很开心~~
Touch事件传递拥有记忆功能,处理了一次事件传递,假定底层布局都没发完成事件,最后是由顶层父布局自己处理的。那么,相同事件再次产生的时候,顶层布局就不会向下分配,而是自己直接处理事件。...总结: 可以看出这个公司的小例子正好对应了Touch事件传递机制。一层一层往下传递,当下面无法完成时,又网上回传。...而手指抬起时再次发生了Touch事件,任然传递至TextView被解决。 ?...同样点击蓝色区域,那么传递的方式应该是先一级一级的分发给下属处理,到了TextView(实习生)后,没有下属了,他又处理不了,就往上回传递,知道传递到FrameLayout(开发组长)后,他将任务处理了...这里体现出了Touch时间传递机制的记忆性。 ? 此图是点击蓝色区域后log打印出的信息,值得注意的是,当FrameLayout按照传递的记忆性直接执行完成任务时,是不会触发拦截方法的。 ?
启动一个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进行信息传递和沟通的讲解
前言:基于android webview 上定制自己使用的可移植浏览器apk,遇到好多按键处理的问题。所以索性研究了一下keyevent 事件的传递流程。...frameworks 层 keyevent 事件开始是从/frameworks/base/core/java/android/webkit 目录下WebViewClassic.java 中onKeyDown...() 函数中又调用 sendBatchableInputMessage()函数在这个函数中的又调用 mWebViewCore.sendMessage(message) 将event封装成Message传递给...KeyEvent) msg.obj, msg.arg1, true); break; webkit层 key中调用nativeKey() 将事件传入webkit中Source/WebKit/android
领取专属 10元无门槛券
手把手带您无忧上云