1、 Intent定义
Intent是Android中非常有用的一个用于组件间通信的信息对象,常用于启动组件和组件间传递参数以及应用程序之间的信息交互。重点:Intent启动对象和传递参数
![0db6fed2d78e30cf6f558d70466095a0.png](https://i-blog.csdnimg.cn/blog_migrate/0ac4ece5c4eca1a55079000fb7617368.png)
2、 Intent的数据结构
![0db6fed2d78e30cf6f558d70466095a0.png](https://i-blog.csdnimg.cn/blog_migrate/0ac4ece5c4eca1a55079000fb7617368.png)
3、 Action含义
Action字段的含义表示其发向的组件需要执行的动作,例如:Action指示图片应用组件去展示图片,地图组件获取当前地址等。
ACTION_VIEW:向用户展示某信息,例如:图片应用展示图片。
ACTION_SEND:用于发送数据,例如:电子邮件应用发送邮件。
4、 URI含义
URI表示待操作数据的引用,URI的内容一般由ACTION决定,例如当ACTION是ACTION_VIEW,URI的值可以使一个网址或者图片。
5、 Type含义
Type表示URI数据的类型,URI和Type协作有助于Android系统找到接收Intent实例的最佳组件。例如可以响应 ACTION_VIEW 的组件可能有非常多,浏览器、播放器、图片应用等等。此时设置mimeType为"image/jpeg"或者video/mp4,则系统可以筛选出更合适的响应组件。
6、 Category含义
Intent的Category属性的值也是一个普通的字符串,用于为Action增加额外的附加类别信息。通常Action 属性与Category属性结合使用。通过ACTION和Category来决定最终需要启动的组件。
7、 Bundle含义
表示Intent携带的附加数据,也是组件间相互传递信息的方式。使用各种 putExtra()
方法添加 Bundle数据,每种方法均接受两个参数:键名和值。
![998b2f7586120582a0b7230410f794ea.png](https://i-blog.csdnimg.cn/blog_migrate/a5145a8be9149ff4b5a784d1886a0e36.png)
8、 Component含义
Intent 的 Component 属性需要接受一个 ComponentName 对象,ComponentName 对象包含的构造器如下。
![bbc6c39aa84a491d2412333dd34e56cb.png](https://i-blog.csdnimg.cn/blog_migrate/78b0671b09c247250f4ff957c0f58efc.png)
该参数的含义表示Intent将要启动的组件所在的包名和类名。
9、 Flag含义
Task就是一个任务栈,里面用来存放Activity,第一个进去的(Activity)处于栈的最下面,而最后创建的(Activity)则处于栈的最上面。从Task中取出(Activity)是从最顶端取出,也就是说先进后出,后进先出。而Activity在Task中的顺序是可以控制的,在Activity跳转时用到Intent Flag可以设置新建Activity的创建方式。
10、clipData含义
表示剪贴板的数据。
11. mContentUserHint含义
安卓系统的多用户管理。具体值的含义如下所示:
![d68b10190d97280ac5f4f2f3d7c23bdc.png](https://i-blog.csdnimg.cn/blog_migrate/270f58738ed30f42a3062d0413046757.png)
参考链接:https://www.jianshu.com/p/19147a69e970