Android、Intent的深入解析
在Android软件环境中,应用程序是由一组Activities 组成的,而每一个Activity 不但是本应用的组成部分,而且也对外开放,可以向同一系统内任何一个外部应用提供服务。例如,编制手机短信无疑需要一个小型编辑器,这个编辑器在Android中由一个Activity 实现,并且可以以构件的形式暴露出来。如果开发者在开发另外一个应用程序的过程中需要一个小型编辑器,则无须重新开发,可直接调用短信应用中的这个编辑器Activity 得以实现。这种多层次的组合能力,与Web 2.0 基于XML的mash-up如出一辙。

Android 调用activity 所提供的接口(服务),并不是直接调用,而是借助一个叫做Intent 的机制实现的。所谓intent 就是对于服务的调用请求。与其他技术体系不同的是,Android可以无须明确地指定要那个组(activity)来满足自己的调用请求,而是可以要求系统根据它的要求,自动选择一个能够满足要求的activity 来提供所需的服务。

大致的过程如下:每一个activity 都可以对外提供一系列的服务,这些服务以Intent-filter 的形式对外公开,并提交给系统进行注册。所谓intent-filter,就是一个activity 的能力列表。例如,一个用于编辑短信正文的文本编辑器activity 应通过AndroidManifest.xml文件中的<intentfilter>元素向系统注册,表明activity具有EDIT 和VIEW文本数据的能力,如果有另一个客户要求EDIT和VIEW一段文本数据,则系统可以调用本activity 予以满足。Activity 本身既是提供服务的组件,也可以是组件的客户。

例如一个备忘录应用中,应用启动时可以显示一个现有备忘录的列表,这是由一个activity 实现的。而当用户选择编辑或新建一个备忘时,这个activity 需要一个文本编辑器activity 来完成这项工作。它怎么做呢?当然不需要自己从头开发一个,而只需要以intent 的方式告诉系统说:“我需要一个具有编辑文本能力的activity 来帮我编辑一个备忘信息”,系统会自动寻找在<intentfilter>中声称具有该项能力的activity,然后激活这个activity,用来满足这个intent。

更多相关文章

  1. 基于android的远程视频监控系统
  2. Android系统架构特点及优劣分析
  3. Android系统build/core下.mk文件分析
  4. Android之UI学习篇一:TextVeiw如何显示丰富的文本
  5. android:layout_marginLeft指该控件距离边父控件的边距, android:
  6. Android图形显示系统——下层显示4:图层合成上(合成原理与3D合成)
  7. 谈谈新窜起的新操作系统平台 - Android平板电脑
  8. android防止系统截屏

随机推荐

  1. php实现特殊字符的替换操作
  2. 关于PHP中Exception、Error Handler的细
  3. PHP实现动态规划之背包问题
  4. 使用PHP来获取客户端和服务端IP
  5. PHP 是怎么接收到请求的?
  6. 关于mysql操作的详细总结以及实例(一)
  7. PHP之十六个魔术方法详解(总结)
  8. 在PHP中处理JSON数组以及对象
  9. php结合layui前端实现多图上传
  10. docker-compose部署php项目