Intent意图
在Android中提供了Intent机制来协助应用间的交互与通讯。是在相同或者不同组件之间通信的“媒介”,专门提供组件互相调用的相关信息。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。
Intent有以下几个属性:
动作(Action),数据(Data),分类(Category),类型(Type),组件(Compent)以及扩展信(Extra)。最常用的是Action属性和Data属性。
intent可以传递哪些数据?
1.java的常见数据类型和String和他们的数组形式
2.还有bundle
3.还有实现了Serializable和Parcelable接口的对象
Serializable和Parcelable的区别
两种都是用于支持序列化、反序列化话操作,两者最大的区别在于存储媒介的不同,Serializable使用IO读写存储在硬盘上,而Parcelable是直接在内存中读写,很明显内存的读写速度通常大于IO读写,所以在Android中通常优先选择Parcelable。
Serializable会产生大量的临时变量,引起频繁的GC
Intent和IntentFilter
Intent:意图
IntentFilter:意图过滤
根据以下条件过滤:
1.Action:动作 view
2.Data: 数据 uri
3.Category: 额外的附加信息