ika*_*k90 16 android bundle android-intent
首先,对于一些Android老手而言,这个问题可能听起来真的很荒谬,但作为新手,我真的需要问这个问题:
An Intent是一种被动数据结构,可以将信息从一个Activity传递到另一个.An Intent还能够以名称 - 值对(via putExtra())的形式保存数据.
但是在覆盖onCreate()方法的同时,我们将a Bundle作为参数传递,最终还以名称 - 值对的形式保存值,并且能够借助于存储信息onSaveInstanceState().
在这种情况下,为什么我们需要两者并区分两者?
更新
我想我已经让你们误解了我误解了什么Intent是:
当我说" Intent一个被动数据结构将信息从一个Activity传递到另一个"时,我想指出的是即使是一个Intent可以携带借助putExtra()方法获取信息(上下文和动作描述除外).为什么我们需要使用Bundle呢?
另外,请确保您在下面的评论中留下理由,以防您向下/向上投票.谢谢你的慷慨.
从Intent类的来源来看,两者之间确实没有区别.从Intent类中检查以下代码:
public Intent putExtra(String name, String value) {
if (mExtras == null) {
mExtras = new Bundle();
}
mExtras.putString(name, value);
return this;
}
Run Code Online (Sandbox Code Playgroud)
和
public Intent putExtras(Bundle extras) {
if (mExtras == null) {
mExtras = new Bundle();
}
mExtras.putAll(extras);
return this;
}
Run Code Online (Sandbox Code Playgroud)
所以我认为,唯一不同的是易用性 .. :)对于1st,你不需要明确地创建你的包.
我想你已经理解了它Bundle是什么:一组键值对.
但是,意图更多.它包含有关应执行的操作的信息.这个新操作由它可以用于的动作以及它应该显示/编辑/添加的数据来定义.系统使用此信息为请求的操作查找合适的应用程序组件(活动/广播/服务).
将Intent视为捆绑包,其中还包含有关谁应该接收包含数据以及应如何呈现的信息.
| 归档时间: |
|
| 查看次数: |
13832 次 |
| 最近记录: |