Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。
我们可以以两种形式来使用Intent:
1.直接Intent:
a.指定了component属性的Intent:
// 前名一个参数是应用程序的包名,后一个是这个应用程序的主Activity名
intent.setComponent(new ComponentName("com.test", "com.test.MailActivity"));
b.使用setClass:
// 从哪跳到哪(相当与内部转发)
intent.setClass(TestActivity.this, MailActivity.class);
2.间接Intent:利用AndroidMenifest.xml中的配置(哥也没做啥android的大系统,所以暂时也懒得管啥松耦合了,很少用
)
没有指定comonent属性的Intent。这些Intent需要包含足够的信息,这样系统才能根据这些信息,在在所有的可用组件中,确定满足此Intent的组件。
<intent-filter>
//Action代表该Intent所要完成的一个抽象“动作”!
<action android:value="com.test.MailActivity" />
//Category则用于为Action增加额外的附加类别信息
<category android:value="android.intent.category.DEFAULT" />
//通常用于向Action属性提供操作的数据,接受Uri对象
<data android:scheme="http" android:pathPattern=".*//.pdf"></data>
//用于明确指定Data属性所指定数据的类型或MIME类型,当Intent不指定Data属性时Type属性才会起作用,否则Android系统将会根据Data属性值来分析数据的类型,因此无需指定Type属性。
<type android:value="vnd.android.cursor.dir/vnd.google.note"/>
</intent-filter>
那么就可以在代码里面用生产的常量指定取哪一个Activity了。
Android内部提供了大量标准Action、Category常量,(转载为另外一篇文章)
Intent的Extra属性通常用于在多个Action之间进行数据交换,Intent的Extra属性值应该是一个Bundle对象,Bundle对象就像一个Map对象,它可以存入多组key-value对,这样可以就可以通过Intent在不同Activity之间进行数据交换了。
// 在intent里面设置值,传递
intent.putExtra("userName", "xdc");
intent.putExtra("passWord", "123");
Intent的Flag属性:首先得说一下task和activity的关系了,他们关系就像是栈,task看作一个容器,activity填充这个容器,先放进去的那么就只有最后拿出来(在最底下),最后放进去的就在最上面,而Intent的Flag属性可以控制。在Activity跳转时用到Intent Flag可以设置新建activity的创建方式。
如:
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
FLAG启动的Activity会把要启动的Activity之上的Activity全部弹出栈空间。类如:原来栈中的情况是A,B,C,D这个时候从D中跳转到B,这个时候栈中的情况就是A,B了,B就在最上面。
分享到:
相关推荐
在Android开发中,Intent是一种非常重要的组件,它用于在应用程序的不同组件之间传递消息,实现活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)以及内容提供者(Content Provider)之间的交互...
在sendBroadcast,startActivity时,我们会用到Intent。 Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化对象,Parcelable与Serializable。 Intent传递数据时,如果数据太大,可能...
【Android Intent 启动和关闭Activity】 在Android应用程序开发中,Intent是连接各个组件(如Activity、Service等)的关键桥梁,主要用于启动和关闭Activity。Intent不仅能够启动一个新的Activity,还能在Activity...
在Android应用开发中,Intent是一种强大的机制,用于在组件之间进行通信。Intent不仅可以用来启动新的Activity,还可以启动服务、广播接收器等。本教程将详细讲解如何使用Intent来实现特定的功能,包括打开新的...
在Android应用开发中,Intent是连接应用程序组件的重要桥梁,它用于启动新的Activity或者服务,以及在组件间传递数据。Intent可以分为显式Intent和隐式Intent。本篇将重点讲解如何利用Intent在Android中调用Activity...
在Android应用开发中,Intent是连接各个组件的重要桥梁,它被用来启动Activity、Service,或者传递数据。本教程主要探讨显式Intent和隐式Intent以及Intent Filter的使用,旨在帮助开发者更好地理解和应用这些概念。 ...
理解Activity的生命周期和Intent的传值机制对于Android开发者来说至关重要。 Activity的生命周期分为三个主要阶段:启动(Start)、运行(Running)和销毁(Destroy)。在启动过程中,Activity会经历onCreate()、...
在Android应用开发中,Intent是一种强大的机制,用于在不同的组件之间进行通信,特别是在Activity之间。实验10的主题是“使用Intent进行通信”,这涉及到Android应用的基本架构和交互流程。在这个实验中,开发者创建...
Android中的Intent是应用程序之间通信的重要桥梁,用于启动其他Activity、Service或者BroadcastReceiver,甚至可以触发系统级别的操作。本文将全面总结Intent的几种主要用法。 1. 显示网页: 使用`ACTION_VIEW`与...
标题与描述均指向了“Android各组件详解——Intent”,这一主题深入探讨了Android开发中至关重要的Intent组件。本文将从多个角度解析Intent的功能、应用场景及其内部结构,为开发者提供全面的理解。 ### Intent概述...
Android 中使用 Intent 打开各种文件类型 Android 操作系统提供了 Intent 机制,允许应用程序之间进行交互和通信。Intent 是一个异步的消息机制,用于在应用程序之间请求或提供服务。通过使用 Intent,可以实现打开...
在Android应用开发中,Intent是连接应用程序组件之间通信的关键机制。Intent-filter的配置对于正确地启动和接收意图至关重要。在给定的标题“Data、Type属性与Intent-filter配置”中,我们关注的重点是如何通过设置`...
在Android应用开发中,Intent是一种强大的机制,用于在组件之间建立通信桥梁,特别是在Activity之间进行切换和数据传递。本文将详细讲解如何通过Intent实现Activity之间的切换,并探讨如何利用Intent进行数据传递。 ...
在Android操作系统中,Intent是一种强大的组件间通信机制,它用于启动其他应用程序组件,如Activity、Service,甚至BroadcastReceiver。Intent不仅能够传递数据,还能在应用的不同部分之间建立连接,是Android开发中...
在Android开发中,Intent是一个至关重要的组件,它用于在应用程序的不同组件之间传递消息,同时也是启动活动(Activity)、服务(Service)和其他组件的主要手段。本文将深入探讨“Intent意图”的简单使用,包括如何...
在Android应用开发中,Intent是一种强大的机制,用于在组件之间传递消息和启动操作。本教程将深入探讨如何在Activity之间使用Intent传递数据,参考自http://blog.csdn.net/huiblog/article/details/53222810。 ...
在Android开发中,Intent是一种非常重要的组件,它用于在应用程序的不同组件之间传递消息,比如启动一个Activity或Service,甚至在不同应用之间进行数据共享。在这个名为"Android整数乘法计算器"的学习项目中,我们...
在Android开发中,Intent是一种非常重要的组件间通信机制。它被用来启动活动(Activity)、服务(Service)或者广播接收器(Broadcast Receiver),并且可以传递数据和执行动作。本篇文章将详细解析“Intent系统调用...
### Intent的常用方法 在Android开发中,`Intent`是一个非常重要的类,它主要用于应用程序组件间的通信。通过`Intent`可以启动新的Activity、Service或发送Broadcast等操作。本文将详细介绍`Intent`的一些常见用法...