Android中的Intent详细讲解

在一个Android应用中,主要是由四种组件组成的,这四种组件可参考“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这个类来描述,具体可以参考android.net.ContentURI类 的文档。

时间: 2024-12-23 02:38:50

Android中的Intent详细讲解的相关文章

android-如何在Android中查看intent的请求码和结果码

问题描述 如何在Android中查看intent的请求码和结果码 如何在Android中查看intent的请求码和结果码,最好详细一点,本人是个新手,谢谢大家 解决方案 你输出要logcat上不就能看到了 解决方案二: android中的请求码和结果码Android基础 Intent 请求码和返回码Android中startActivity的使用----请求码与结果码的意义 解决方案三: 你是调用的startActivityForResult么?如果是的话,请求码是你自己设置的,结果码再重写那个

安卓意图-android中的intent对象的addCategory方法和setType方法有什么用区别

问题描述 android中的intent对象的addCategory方法和setType方法有什么用区别 android中的intent对象的addCategory方法和setType方法有什么用区别 按照语翻译的中文字面意思很相似啊, 解决方案 这个一两句说不清楚,你去看看资料,网上很多解释,主要是自己动手用用,别总看

Android中的WebView详细介绍_Android

Android中WebView的详细解释: 1. 概念: WebView(网络视图)能加载显示网页,可以将其视为一个浏览器.它使用了WebKit渲染引擎加载显示网页. 2. 使用方法: (1).实例化WebView组件: A.在Activity中实例化WebView组件.eg: 复制代码 代码如下:    WebView webView = new WebView(this); B.调用WebView的loadUrl()方法,设置WevView要显示的网页.eg: 复制代码 代码如下: 互联网用

Android中的WebView详细介绍

Android中WebView的详细解释: 1. 概念: WebView(网络视图)能加载显示网页,可以将其视为一个浏览器.它使用了WebKit渲染引擎加载显示网页. 2. 使用方法: (1).实例化WebView组件: A.在Activity中实例化WebView组件.eg: 复制代码 代码如下:    WebView webView = new WebView(this); B.调用WebView的loadUrl()方法,设置WevView要显示的网页.eg: 复制代码 代码如下: 互联网用

Android中的Intent对象完全解析

一. Intent 作用 Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成Android各个组件之间的通讯.比如说调用startActivity()来启动一个activity,或者由broadcaseIntent()来传递给所有感兴趣的BroadcaseReceiver, 再或者由startService()/bindservice()来启动一个后台的service.所以可以看出来,intent主要是用来启动其他的activity 或者servi

Android中的Intent Filter简介

Intent是Android应用程序核心组件之间通信和传递信息的核心机制.与之相关的IntentFilter也具有相关的安全机制(测试)来进行约束.本文将对其进行详细介绍. 一.Intent和IntentFilter简介 一个应用程序的三个核心组件(活动,服务和广播接收器)都是通过消息即意图(Intents)来激活的.Intent消息传送是相同或不同应用中组件运行时晚绑定的一种机制.意图本身(一个意图对象)是一个包含被执行操作抽象描述的被动的数据结构.或,对于广播而言,是某件已经发生并被声明的事

Android 中的注解详细介绍_Android

注解是我们经常接触的技术,Java有注解,Android也有注解,本文将试图介绍Android中的注解,以及ButterKnife和Otto这些基于注解的库的一些工作原理. 归纳而言,Android中的注解大概有以下好处 提高我们的开发效率 更早的发现程序的问题或者错误 更好的增加代码的描述能力 更加利于我们的一些规范约束 提供解决问题的更优解 准备工作 默认情况下,Android中的注解包并没有包括在framework中,它独立成一个单独的包,通常我们需要引入这个包. dependencies

Android中的Intent Filter匹配规则简介_Android

本文主要介绍了隐式Intent匹配目标组件的规则,若有叙述不清晰或是不准确的地方希望大家指出,谢谢大家:  ) 1. Intent简介 Intent用于在一个组件(Component,如Activity.Service.Broadcast Receiver)中打开另一个组件. Intent可分为隐式(implicitly)和显式(explicitly)两种: Explicitly Intent:在知道要打开哪个具体的Component时使用,通过指定调用者和被调用者即可打开目标Component

Android中的Intent Filter匹配规则简介

本文主要介绍了隐式Intent匹配目标组件的规则,若有叙述不清晰或是不准确的地方希望大家指出,谢谢大家:  ) 1. Intent简介 Intent用于在一个组件(Component,如Activity.Service.Broadcast Receiver)中打开另一个组件. Intent可分为隐式(implicitly)和显式(explicitly)两种: Explicitly Intent:在知道要打开哪个具体的Component时使用,通过指定调用者和被调用者即可打开目标Component