Intent
的组成与作用
flowchart LR
send[发送intent]-->component{是否指定组件名}
component-- 是 --> explicit[显式intent]
component-- 否 --> implicit[隐式intent]
explicit --> 启动目标组件
implicit --> search[通过intent filter寻找合适的组件]
search-->multi[返回多个组件]
multi -- 是 --> choose[用户选择组件打开] --> 启动目标组件
multi-- 否 --> 启动目标组件
Intent
是组件之间传输消息的信息对象,其组成部分主要如下:
组成部分 |
作用 |
ComponentName |
在显式Intent 中指定,表示目标组件 |
Action |
表示想要完成的一个动作 |
Category |
Intent 的类别,可以有多个 |
Data , Type |
指向数据的URI以及数据的MIME 类型 |
Extras |
Bundle 类型的对象,用于数据的交换 |
Flags |
通常用于启动Activity 时指定一些启动的标志 |
Intent
中的Action
Action |
对应的动作 |
ACTION_MAIN |
应用程序入口 |
ACTION_VIEW |
显示数据 |
ACTION_EDIT |
显示可以编辑的数据 |
ACTION_PICK |
选择数据 |
ACTION_DAIL |
显示号码到Dailer |
ACTION_CALL |
拨打号码 |
ACTION_SERACH |
执行搜索 |
ACTION_SYNC |
同步一个Data |
Intent
中的Category
Category |
对应的类别 |
CATEGORY_DEFAULT |
最常见的隐式intent带的Category ,是隐式 Intent 的默认 Category,并且通常用于匹配隐式 Intent 的目标 Activity |
CATEGORY_LAUNCHER |
对应的Activity 为应用的启动入口 |
CATEGORY_BROWABLE |
Intent 与网络相关,通过浏览器或其他外部应用打开一个Activity |
CATEGORY_HOME |
指向Home 界面 |
CATEGORY_PREFERENCE |
相应的Activity 是一个偏好面板 |
Intent
中的Flags
Flag |
标志含义 |
FLAG_ACTIVITY_CLEAR_TOP |
每次复用时删除其上方的所有Activity ,作为根Actiivty 运行 |
FLAG_ACTVITY_SINGLE_TOP |
复用根Actiivty |
FLAG_ACTIVITY_NEW_TASK |
找到一个task或开启一个task供Activity 使用 |
FLAG_ACTIVITY_NO_HISTORY |
离开Activity 后,从任务栈中移除 |