zoukankan      html  css  js  c++  java
  • 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一个

  • 相关阅读:
    设计模式之观察者模式
    设计模式之装饰器模式
    redis.conf常用配置说明
    log4j日志框架的使用
    Redis入门简述
    Linux用户组权限简单解析
    MyBatis入门简述
    初学Linux要掌握的命令
    SpringIOC原理简述
    Java单元测试神器之Mockito
  • 原文地址:https://www.cnblogs.com/firecode/p/2613277.html
Copyright © 2011-2022 走看看