上一期我们学习了Activity的创建和配置,当时留了一个悬念,如何才能在默认启动的Activity中打开其他新建的Activity呢?那么本期一起来学习如何启动和关闭Activity。
一、概述
经过前面内容的学习,知道一个Android应用通常都会包含多个Activity,但只有一个Activity 会作为程序的入口——当该Android应用运行时将会自动启动并执行该Activity。至于应用中的其他Activity,通常都由入口 Activity启动,或由入口 Activity启动的Activity启动。
Activity启动其他Activity有如下两个方法。
-
startActivity(Intent intent):启动其他 Activity。
-
startActivityForResult(Intent intent, int requestCode):以指定的请求码(requestCode)启动Activity,而且程序将会获取新启动的Activity返回的结果(通过重写 onActivityResult(..)方法来获取)。其中requestCode参数代表了启动Activity的请求码,该请求码的值由开发者根据业务自行设置,用于标识请求来源。
上面两个方法都用到了 Intent参数,Intent是Android应用里各组件之间通信的重要方式,一个Activity通过Intent来表达自己“意图”——想要启动哪个组件,被启动的组件既可是 Activity组件,也可是Service组件。
关于Intent的详细使用会在后续部分学习,这里先知道创建Intent对象的两个方法,在开发中根据自己喜好选择使用其中一种即可,具体代码如下。
// 方式一
// 创建Intent对象
Intentintent1=newIntent();
// 设置需要启动的Activity,以及要启动Activity的上下文环境
intent1.setClass(this,MyActivity.class);
// 方式二
// 直接创建Intent对象,包含要启动的Activity信息
Intentintent2=newIntent(this,MyActivity.class);
Android为关闭Activity准备了如下两个方法。
-
finish():结束当前 Activity。
-
finishActivity(int requestCode):结束以 startActivityForResult(Intent intent, int requestCode)方法启动的 Activity。
二、示例
接下来通过一个示例程序来学习Activity的启动和关闭。