在Activity间传递的数据一般比较简单,可是有时分实践开发中也会传一些比较复杂的数据,尤其是面试问道当遇到需求在Activity间传递很多的数据怎么办?
Intent 传递数据的巨细是有约束的,它大约能传的数据是1M-8K,原因是Binder锁映射的内存巨细便是1M-8K.一般activity间传递数据会要运用到binder,因此这个就成为了数据传递的巨细的约束。那么当activity间要传递大数据选用什么方法呢?其实方法很多,咱们就举几个比方给咱们说明一下:
本篇主要内容讲一下第一种使用Intent传递数据。
intent就是起到一个中间媒介的作用,可以在activity之间传递数据,也可以进行进行一些基本的action。比如startactivity()之类。
首先我们创建两个activity,分别叫MainActivity以及OtherActivity。在MainActivity的布局文件中,添加一个button,用于页面之间的转跳,以及相关数据的传输。在OtherActivity的布局文件中,我们添加一个TextView,用于接受数据。
MainActivity中的代码:
编辑切换为居中
添加图片注释,不超过 140 字(可选)
这些代码,相信大家都很熟悉,应该不难。我们主要来说说putExtra();
putExtra(“A”,B)中,AB为键值对,第一个参数为键名,第二个参数为键对应的值。顺便提一下,如果想取出Intent对象中的这些值,需要在你的另一个Activity中用getXXXXXExtra方法,注意需要使用对应类型的方法,参数为键名
编辑切换为居中
添加图片注释,不超过 140 字(可选)
因为我们之前传入的是一个字符串,所以调用getStringExtra这个方法。
这样我们就简单的在两个activity之间传递数据啦~
传递数据包,我们主要使用bundle这个类。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
首先我们创建一个bundle类。当传递字符串时,使用putString方法;传递整数时,用putInt方法。 最后再用putExtras 将数据包传递到另一个activiity。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
首先我们创建一个bundle对象,接收MainActivity传递过来的数据。最后用setText方法,将其展现出来。这样一个数据包就传递完成了。
我们继续创建两个Activity,分别叫MainActivity和OtherActivity。但是这次不同的是,我们在MainActivity的xml文件中,创建一个按钮和一个TextView,用于接收返回的数据。在OtherActivity的xml的文件中,我们创建一个EditText和一个button,用于返回数据。 (这两个Xml文件的代码,我也不不一一展示了)
都比较基础,我们主要看setResult()这个方法。
它的第一个参数是一个返回码,主要用于设置返回状态,你也可以自行进行定义。第二个参数是一个intent对象。
MainActivity的代码:
关于Android开发中需要在Activity间传递大量的数据,怎么去解决?其实有很多方法,上方也举例了一个实际案例。更多有关Android开发技术可以参考[《Android核心技术手册》]学习更多Android进阶技巧。