intent.putExtra(Bundle) 和直接用Intent.putExtra("xx",yy)传递有什么不同

intent.putExtra(Bundle)和直接用Intent.putExtra("xx",yy)传递有什么不同

回复

广东-虫子(346345565) 15:39:44

这个问题我来解答吧

回复

广东-虫子(346345565) 15:39:54

我首先要批评你

回复

广东-虫子(346345565) 15:40:00

第一,这根本就不是个问题

回复

广东-虫子(346345565) 15:40:09

第二,这个问题可以谷歌出结果

回复

广东-虫子(346345565) 15:40:14

好,现在开始解答

回复

广东-虫子(346345565) 15:40:24

首先,Android是开源的

回复

广东-虫子(346345565) 15:40:36

任何的类型可以通过查看源码来得到答案

回复

广东-虫子(346345565) 15:40:59

Bundle与Intent有什么不同?感觉两个用起来一样啊

回复

广东-虫子(346345565) 15:41:16

其实可以查看Android的源码,你会发现

回复

广东-虫子(346345565) 15:41:28

两者都实现了Java的Parcelable与Cloneable接口

回复

长沙-lysine(272803220) 15:41:38

 

回复

广东-虫子(346345565) 15:41:51

这两个接口可以用来序列化类

回复

广东-虫子(346345565) 15:42:01

通俗的讲

回复

广东-虫子(346345565) 15:42:08

这两个接口可以存放类

回复

广东-虫子(346345565) 15:42:23

因此,Bundle与Intent在整体大结构上是一样的

回复

广东-虫子(346345565) 15:42:33

那为什么两者都使用?

回复

广东-虫子(346345565) 15:42:41

下面用一个场景为你解答

回复

长沙-lysine(272803220) 15:42:44

嗯嗯 

回复

广东-虫子(346345565) 15:42:52

我现在有4个Activity,A,B,C,D

回复

广东-虫子(346345565) 15:43:08

我要在A中传递8个int类型到D中

回复

广东-虫子(346345565) 15:43:13

你会怎么做?

回复

广东-虫子(346345565) 15:43:23

当然路径要经过B,C

回复

广东-虫子(346345565) 15:43:33

也就是A->B->C->D

回复

广东-虫子(346345565) 15:43:45

如果你用传统的Intent的话

回复

广东-虫子(346345565) 15:44:03

你需要PutInt8个吧

回复

长沙-lysine(272803220) 15:44:11

对,是的

回复

广东-虫子(346345565) 15:44:21

B用getIntent()收到货后

回复

广东-虫子(346345565) 15:44:36

了个去,又要发Intent,尼玛再PutInt8次

回复

广东-虫子(346345565) 15:44:51

同样的,C尼玛的也要8次,那个去,这样不会死人?

回复

广东-虫子(346345565) 15:45:05

如果A直接弄个Bundle过去

回复

长沙-lysine(272803220) 15:45:11

呵呵,这正是我要做的。。有几个页面没办法

回复

广东-虫子(346345565) 15:45:19

人家B与C只需要解个Bundle就可直接传给D了

回复

广东-虫子(346345565) 15:46:06

现在你明白了吗?

回复

广东-虫子(346345565) 15:46:15

好,回答完毕,请鼓掌

回复

武汉-Dreamer(498557849) 15:46:39

 

回复

长沙-lysine(272803220) 15:47:18

 

回复

沈阳-奶茶(627408355) 15:47:32

 

回复

长沙-lysine(272803220) 15:47:46

 还是不懂

回复

北京-木头(316297629) 15:50:20

用你喜欢的方法来做
(来自手机QQ2012 [Android]:http://mobile.qq.com )

 

回复

长沙-lysine(272803220) 15:52:08

咦, 刚刚看了个网友源码,的确在第 B个Activity,直接用bundle来做, 不用 赋值了 正确啊

 

回复

武汉-Dreamer(498557849) 15:53:14

不用每次都赋值?

 

回复

武汉-Dreamer(498557849) 15:53:23

就这个区别吗

 

回复

广东-虫子(346345565) 15:53:47

基本上是

 

回复

武汉-Dreamer(498557849) 15:54:16

那和jsp容器有点一样啊,生命周期不一样

 

回复

长沙-lysine(272803220) 15:54:37

是的 我们从 Bundle字面上英语就是 捆绑 包袱 , 就是说 它在A 打包好数据后, 我们就可以直接在 B C D用了。

 

回复

武汉-Dreamer(498557849) 15:54:37

request,和session Application什么的

 

回复

广东-虫子(346345565) 15:56:38

你看过Intent代码会发现

 

回复

广东-虫子(346345565) 15:56:51

Intent里面有个Bundle字段,因此什么都明白了

 

回复

广东-虫子(346345565) 15:57:04

你重写了putXXX方法

 

回复

广东-虫子(346345565) 15:57:18

Intent的putXXX是Bundle的货

 

回复

广东-虫子(346345565) 15:57:36

 

 

回复

深圳-...(125721515) 15:57:40

虫子还牛X

 

回复

广东-虫子(346345565) 15:58:05

而Bundle之所以可以putXXX,看源码你就会明白

 

回复

广东-虫子(346345565) 15:58:10

它妹的是HashMap

 

回复

广东-虫子(346345565) 15:59:24

 

回复

深圳-...(125721515) 15:59:42

 

 

回复

广东-虫子(346345565) 15:59:46

建议大家准备Android源码一份

 

回复

广东-虫子(346345565) 15:59:54

Source Insight一个

posted on 2012-07-28 16:31  Code大蛇丸  阅读(3659)  评论(0编辑  收藏  举报