剖析Intent、Broadcast和Adapter
来源:互联网 发布:淘宝会查快递的重量吗 编辑:程序博客网 时间:2024/06/13 09:07
Android应用程序运行在它所属的暗盒内,但他们可以使用Intent、Broadcast Receiver、Adapter、Content Provider和Internet来扩展超出它们作用域的功能。
Intent消息传递:
Intent最常用的用法是启动新的Activity,不管是显式的(通过指定类来加载)还是隐式的(通过请求在一块数据上执行的动作)。Intent还可以用来广播消息。任何应用程序都可以注册一个Broadcast Receiver来监听,响应这些广播的Intent。它让你创建基于内部的、系统的或第三方应用程序事件的事件驱动式应用程序。
Intent负责对应用中一次操作的动作(Action)、动作相关数据(Data/Type、Category、Component)、附加数据(Extra)进行描述,Android则根据此Intent的描述,负责找到相应的组件,将Intent传递给调用的组件,并完成组件的调用。Intent在这里起着实现调用者与被调用者之间的解耦作用。
Intent的显式匹配和隐式匹配:Intent在传递过程中要找到目标消费者(另一个Activity、IntentReceiver或Service),也就是Intent响应者,有两种方法。
显式:Intent(context,.class)
隐式:填写Action、Data/Type、Category、Component、Extra而不指定.class
Intent 组织架构:
action:用来指明要实施的动作是什么
data:要实施的具体的数据,一般由一个Uri变量表示
category:这个选项指定了将要执行的这个action的其他一些额外的信息,例如LAUNCHER_CATEGORY表示Intent的接受者应该是Launcher中作为顶级应用出现,而ALTERNATIVE_CATEGORY表示当前的Intent是一系列的可选动作中的一个,这些动作可以在同一块数据上执行
type:显式指定Intent的数据类型(MIME)。一般Intent的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用显式指定的类型而不再进行推导。
component:指定Intent的目标组件的类名。通常Android会根据Intent中包含的其他属性的信息,比如action、data/type、category进行查找,最终找到一个与之匹配的目标组件。但是,如果component这个属性有指定的话,将直接使用它指定的组件,而不再执行上述查找过程。指定了这个属性之后,Intent的其他所有属性都是可选的。
extras:是其他所有附加信息的集合。使用extras可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在extras里,传给电子邮件发送组件。
利用上面这些信息可以描述出一些意图行为。
- 剖析Intent、Broadcast和Adapter
- Android 剖析 Intent、Broadcast和Adapter
- Intent和BroadCast(一)
- Intent和BroadCast(二)
- intent 和 Broadcast Receiver之间的通信
- Android手机开发:Intent和Broadcast
- Intent,广播Broadcast,和message数据交替
- android intent和intent action大全,Broadcast Action大全
- Intent、Broadcast Receiver、service
- Android simplest intent broadcast
- android broadcast intent
- (Android) Broadcast Intent Permissions
- Android - Intent广播(broadcast)
- Intent、Linkify、broadcast receiver
- Android学习--broadcast intent
- android 之 Intent、broadcast
- Intent实现Broadcast Receiver 实例
- some codes about broadcast intent
- 定义明确的安全需求
- 数据结构-----中序遍历二叉树非递归算法(利用堆栈实现)
- 2-3树的java实现
- 30岁之前如何投资自己?
- 转:C++深入浅出之正则表达式(二)
- 剖析Intent、Broadcast和Adapter
- spring mvc4使用及json 日期转换解决方案
- Android横竖屏切换不销毁当前Activity的方法
- 字符
- Linux/ubuntu下core文件的产生与使用
- php实现无限级树型菜单(函数递归算法)
- mysql导出数据库
- 搜索引擎抓取的关系
- 关于谷歌内核 字体小于12px时候的情况