1. Intent 与 Bundle 传值区别
Bundle在存取数据是比较灵活的,而Intent在存取数据的种类很少且没有指定数据类型;
想对数据进行比较灵活的操作如批量操作的话就用bundle;
Bundle是可以对对象进行操作的,而Intent不可以。Bundle相对于Intent比较偏下层,比Intent接口更多,更灵活,但Bundle仍需要借助Intent才能在Activity之间传递。
概括一下,Intent旨在数据传递,bundle旨在存取数据,当然intent也提供一部分数据的存取,但比起bundle就显得很不灵活。
2.Intent 对象
Intent对象大致包含 Component(指明目标组件)、Action、Category、Data、Type、Extra(携带数据)和Flag这7中属性。
1.Component
Component 通过对象使用,创建对象 ComponentName comp = new Component(MainActivity.this,SecondActivity.class)
Intent设置目标 Intent.setComponent() ,Intent.getComponent()
2.Action、Category属性与intent-filter配置
Action 表示要完成的一个抽象“动作” Intent.setIntent() 一个
Category 用于Action增加额外的附加类别信息 Intent.addCategory() 多个
3.Extra
用于多个Activity间传递数据,Extra应该是一个Bundle对象,类似Map对象,存Key-Value数据
4.Flag
为Intent添加一些额外的控制旗标addFlag
如Intent.FLAG_ACTIVITY_CLEAR_TOP旗标可以用于清除当前Activity栈中的Activity