您的位置:首页 > 其它

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

2012-07-28 16:31 253 查看
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一个
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: