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就在最上面。
分享到:
相关推荐
在sendBroadcast,startActivity时,我们会用到Intent。 Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化对象,Parcelable与Serializable。 Intent传递数据时,如果数据太大,可能...
Intents and Intent Filters 三种应用程序基本组件——activity, service和broadcast receiver——是使用称为intent的消息来激活的。Intent消息传递是一种组件间运行时绑定的机制. intent是Intent对象, 它包含了...
Android Intent 跳转到系统应用中的拨号界面、联系人界面、短信界面 在 Android 开发中,Intent 是一个非常重要的概念,它允许不同的应用程序之间进行交互和通信。在本文中,我们将探讨如何使用 Intent 跳转到系统...
议题归纳了几种常见的Intent注入类型,如何用工具去自动挖掘这些漏洞,并演示了几个在安卓框架层、系统级APP以及浏览器中发现的Intent注入漏洞。 目录 Intent注入的概念 Intent转换与复制 Action/Component/Data注入...
Android源代码 演示3个功能: (1)Intent打开另外一个Activity (2)Intent拨电话 (3)Intent在2个Activity间传递数据
Android 广播大全 Intent Action 事件 Android 广播大全 Intent Action 事件是 Android 系统中的一种核心机制,用于在应用程序之间传递信息和事件通知。 Intent 是一种轻量级的消息对象,用于描述一个操作的请求或...
主要为大家详细介绍了Android利用Intent启动和关闭Activity的相关操作,感兴趣的小伙伴们可以参考一下
IntentIntent-Filter思维导图
Activity生命周期及Intent传值
android intent
4种最常用的Intent传递方式,这4种方式如下: 1、通过Intent传递数据 2、通过静态变量传递数据 3、通过剪切板传递数据 4、通过全局变量传递数据
通过Intent实现Activity之间的切换,并利用Intent实现了数据的传递
Android Intent的几种用法全面总结
android 利用intent调用activity 简明精炼的例子 传递数据,并且有返回值
intent startactivityforresult setResult intent
Intent意图简单使用(启动不同程序中的Activity,Intent传值传对象,接收返回值)
Intent跳转传值,和Activity返回传值
Intent_Bundle_传参数
Android Intent 学习笔记
显式和隐式、过滤器intent的使用,欢迎有需要的朋友下载!