Intent
它是Android里非常重要的角色,基本上是核心人物。
能做的
- startActivity --> 启动activity
- broadcastIntent -> Broadcast
- Context.startService(Intent) Context.bindService(Intent, BindServiceFlags, Executor, ServiceConnection) -> Service
它提供了一种工具,用于传递数据在不同的Intent里面,一个被动的数据结构保存要执行的操作
结构
- 行动 : 执行的操作
- 数据:操作的数据
示例:
ACTION_VIEW
*content://contacts/people/1* – 显示有关标识符为 “1” 的人员的信息。
ACTION_DIAL
*content://contacts/people/1* --显示已填写人员的电话拨号器
ACTION_EDIT
*content://contacts/people/1* – 编辑有关标识符为 “1” 的人员的信息
其他属性:
category - 提供有关操作的其他信息;CATEGORY_LAUNCHER
表示它应作为顶级应用程序显示在 Launcher 中,而 CATEGORY_ALTERNATIVE
表示它应包含在用户可以对一条数据执行的替代操作列表中。
type - 指定目的数据的显式类型 (MIME 类型),可以禁用推断数据类型这一操作,直接认为数据就是显性类型
componet-指定要用于目的的组件类的显式名称。一般,这个设置了,则其他信息就没那么重要了。因为这个一般都是其他信息组合起来系统进行推断的。但是若显性指明这个属性,其他信息组合就没有意义了
extras - 用于向组件提供扩展信息
使用
显式Intent: 通过setComponent(ComponentName) or setClass(Context, Class) 显式指定要运行的类
隐式Intent: 并未指定组件,但是filter需要包含足够多的信息,找到可用组件
参考链接:https://developer.android.google.cn/reference/android/content/Intent#developer-guides
https://developer.android.google.cn/guide/components/intents-filters