Android学习(四)-四大组件.docVIP

  • 0
  • 0
  • 约1.76万字
  • 约 19页
  • 2017-07-09 发布于河南
  • 举报
Android学习(四)-四大组件

Android培训讲解(四) 四大组件 文档修改记录 版本 内容 编写人 编写日期 审核人 审核日期 1.0.0 初稿 苏景博 2013-03-03 xzl137 版权申明: 本文档的版权属于北京软件系统有限公司,任何人或组织未经许可,不得擅自修改、拷贝或以其它方式使用本文档中的内容。 Intent详解 android有四大组件,这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。 在这些组件之间的通讯中,主要是由Intent协助完成的。 Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。 因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。 例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity为listActivity)上,点击某个联系人后,希望能够跳出此联系人的详细信息屏幕(假设对应的Activity为detailActivity) 为了实现这个目的,listActivity需要构造一个 Intent,这个Intent用于告诉系统,我们要做“查看”动作,此动作对应的查看对象是“某联系人”,然后调用startActivity (Intent intent), 将构造的Intent传入,系统会根据此Intent中的描述,到ManiFest中找到满足此Intent要求的Activity,系统会调用找到的 Activity,即为detailActivity,最终传入Intent,detailActivity则会根据此Intent中的描述,执行相应的操作 在Android参考文档中,对Intent的定义是执行某操作的一个抽象描述(确实很抽象)。我们先来看看这里的抽象描述,到底描述了什么。 首先,是要执行的动作(action)的一个简要描述,如VIEW_ACTION(查看)、EDIT_ACTION(修改)等,Android为我们定义了一套标准动作: MAIN_ACTION VIEW_ACTION EDIT_ACTION PICK_ACTION GET_CONTENT_ACTION DIAL_ACTION CALL_ACTION SENDTO_ACTION ANSWER_ACTION INSERT_ACTION DELETE_ACTION RUN_ACTION LOGIN_ACTION CLEAR_CREDENTIALS_ACTION SYNC_ACTION PICK_ACTIVITY_ACTION WEB_SEARCH_ACTION 此外,我们还可以根据应用的需要,定义我们自己的动作,并可定义相应的Activity来处理我们的自定义动作。 其次,是执行动作要操作的数据(data),Android中采用指向数据的一个URI来表示,如在联系人应用中,一个指向某联系人的URI可能为:content://contacts/1。 这种URI表示,通过 ContentURI这个类来描述,具体可以参考.ContentURI类的文档。 另外,除了action和data这两个重要属性外,还有一些附加属性: category(类别),被执行动作的附加信息。例如 LAUNCHER_CATEGORY 表示Intent 的接受者应该在Launcher中作为顶级应用出现 type(数据类型),显式指定Intent的数据类型(MIME)。一般Intent的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用显式指定的类型而不再进行推导。 component(组件),指定Intent的的目标组件的类名称。通常 Android会根据Intent 中包含的其它属性的信息,比如action、data/type、category进行查找,最终找到一个与之匹配的目标组件。但是,如果 component这个属性有指定的话,将直接使用它指定的组件,而不再执行上述查找过程。指定了这个属性以后,Intent的其它所有属性都是可选的。 extras(附加信息),是其它所有附加信息的集合。使用extras可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在extras里,传给电子邮件发送组件。 总之,action、 data/type、category和extras 一

文档评论(0)

1亿VIP精品文档

相关文档