一、Intent简介
Intent(意图)是一个对象,它是一个被动的数据结构保存一个将要执行操作的抽象描述,或在广播的情况下,通常是某事已经发生并正在执行,开发人员通常使用该对象激活Activity、Service和BroadcastReceiver。Intent用于相同或者不同应用程序组件间的后期运行时绑定。
对于不同的组件,Android系统提供了不同的Intent发送机制进行激活。
•Intent对象可以传递给Context.startActivity()或Activity.startActivityForResult()方法来启动Activity或者让已经存在的Activity去做其他任务。(Intent对象也可以作为Activity.setResult()方法的参数,将信息返回给调用startActivityForResult()方法的Activity)
•Intent对象可以传递给Context.startService()方法来初始化Service或者发送新指令到正在运行的Service。类似的,Intent对象可以传递Context.bindService()方法来建立调用组件和目标Service之间的链接。它可以有选择的初始化没有运行的服务。
•Intent对象可以传递给Context.sendBroadcast()、Context.sendOrderedBroadcast()或Context.sendStickyBroadcast()等广播方法,使其被发送给所有感兴趣的BroadcastReceiver。
二、创建并配置Activity
1.创建Activity
创建Activity,大致可以分为以下两个步骤。
(1)创建一个Activity一般是继承android.app包中的Activity类,不过在不同的应用场景下,也可以继承Activity的子类。
importandroid.app.Activity;
publicclass DetailActivityextends Activity {
}
(2)重写需要的回调方法。通常情况下,都需要重写onCreate()方法,并且在该方法中调用setContentView()方法设置要显示的视图。
@Override
publicvoid onCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
}
2.配置Activity
创建Activity后,还需要在AndroidManifest.xml文件中配置该Activity,如果没有配置该Activity,而在程序中又启动了该Activity,那么将抛出如下图所示的异常信息。

具体的配置方法是在<application></application>标记中添加<activity></activity>标记实现。<activity>标记的基本格式如下:
<activity
android:icon="@drawable/图标文件名"
android:name="实现类"
android:label="说明性文字"
android:theme="要应用的主题"
…
>
…
</activity>
三、启动Activity
1.显示启动
显示启动Activity大致可以分为以下两个步骤。
(1)需要创建Intent对象,可以使用下面的语法格式。
![]()
(2)应用startActivity()方法来启动Activity。startActivity()方法的语法格式如下:
![]()
2. 显式启动第二个Acitivty步骤
(1)定义第二个界面的布局文件;
(2)定义第二个界面控制的Activity类;
(3)AndroidManifest文件中配置第二个Avtivity类;
(4)MainAcctivity中定义Intent对象,调用startActivity()方法开启第二个Acitivity。
四、隐式Intent
隐式Intent,隐式的就是没有指定Intent的组件名字,没有制定明确的组件来处理该Intent,使用这种方式时,需要让Intent与应用中的IntentFilter描述表相匹配。需要Android根据Intent中的Action、data、Category等来解析匹配。由系统接受调用并决定如何处理,即Intent的发送者在构造Intent对象时,并不知道也不关心接收者是谁,有利于降低发送者和接收者之间的耦合。
隐式启动:需要在自己的应用程序中,展示一个网页,就可以调用系统的浏览器来打开这个网页就行了,而不必自己再编写一个浏览器。这时,可以使用下面的语句实现。
Intentintent= new Intent(); // 创建Intent对象
intent.setAction(Intent.ACTION_VIEW); // 为Intent设置动作
intent.setData(Uri.parse("http://www.mingribook.com"));// 为Intent设置数据
startActivity(intent); // 将Intent传递给Activity
标准Activity action说明
| 常 量 | 说 明 |
| ACTION_MAIN | 作为初始的Activity启动,没有数据输入输出 |
| ACTION_VIEW | 将数据显示给用户 |
| ACTION_ATTACH_DATA | 用于指示一些数据应该附属于其他地方 |
| ACTION_EDIT | 将数据显示给用户用于编辑 |
| ACTION_PICK | 从数据中选择一项,并返回该项 |
| ACTION_CHOOSER | 显示Activity选择器,允许用户在继续前按需选择 |
| ACTION_GET_CONTENT | 允许用户选择特定类型的数据并将其返回 |
| ACTION_DIAL | 使用提供的数字拨打电话 |
| ACTION_CALL | 使用提供的数据给某人拨打电话 |
| ACTION_SEND | 向某人发送消息,接收者未指定 |
| ACTION_SENDTO | 向某人发送消息,接收者已指定 |
| ACTION_ANSWER | 接听电话 |
| ACTION_INSERT | 在给定容器中插入空白项 |
| ACTION_DELETE | 从容器中删除给定数据 |
| ACTION_RUN | 无条件运行数据 |
| ACTION_SYNC | 执行数据同步 |
| ACTION_PICK_ACTIVITY | 挑选给定Intent的Activity,返回选择的类 |
| ACTION_SEARCH | 执行查询 |
| ACTION_WEB_SEARCH | 执行联机查询 |
| ACTION_FACTORY_TEST | 工厂测试的主入口点 |

