Intent的七大属性
1, Intent的作用
包装Android的组件
组件之间的传值
启动Activity, 启动Service, 发送BroadcastReceiver
2, Intent
"显式"意图
明确指定了要跳转的Activity(通常用于应用程序内部的跳转)
"隐式"意图
不明确指定目标Activity, 而是通过Intent来描述动作(通常用于多个应用程序之间的跳转)
3, "显式"意图
方式一:
Intent intent = new Intent(MainActivity.this, InfoActivity.class)
startActivity(intent)
方式二:
Intent intent = new Intent()
intent.setClass(MainActivity.this, InfoActivity.class)
startActivity(intent)
方式三: ComponentName 包装Android组件
Intent intent = new Intent()
ComponentName component = new ComponentName(MainActivity.this, InfoActivity.class)
intent.setComponent(component)
startActivity(intent)
4, "隐式"启动Activity
4.1 action 必须保证action在Android应用中是唯一的
A应用(启动者)
Intent intent = new Intent()
intent.setAction("包名.自定义的名称")
B应用(被启动者) 提供唯一的action
在清单文件中提供: <activity > 过滤器 </activity>
在过滤器中 需要指定 action + category
<intent-filter>
<action android:name="包名.自定义的名称"/>
<category android:name = "android.intent.category.DEFAULT"/>
</intent-filter>
4.2 category Activity的类型
android.intent.category.DEFAULT 默认的, 普通的activity
android.intent.category.LAUNCHER 程序的入口
4.3 data 指定action后, 将必要的数据放入data
比如: 拨打电话, 必须要提供电话号码
打开网页, 必须提供网址
setData(Uri ..)
Uri : 统一资源标识符
打电话: tel:15383405516
发短信: smsto:10086
网址: http://baidu.com
4.4 type 类型 : 如果data属性是一个文件路径, 则需要通过type来指定文件的类型
比如: 文本: text