Android Activity组件及其生命周期

  • 内容
  • 评论
  • 相关

Activity 是 Android 组件中最基本也是最为常见的组件。

Activity 是用户接口程序,原则上它会提供给用户一个交互式的接口功能,几乎所有的 Activity 都要和用户打交道,也有人把它比喻成 Android 的管理员。需要在屏幕上显示什么、用户在屏幕上做什么、处理用户的不同操作等都由 Activity 来管理和调度。

Activity 提供用户与 Android 系统交互的接口,用户通过 Activity 来完成自己的目的。例如打电话、拍照、发送 E-mail、查看地图等。

每个 Activity 都提供一个用户界面窗口,一般情况下,该界面窗口会填满整个屏幕,但是也可以比屏幕小,或者浮在其他的窗口之上。

一个 Android 应用程序通常由多个 Activity 组成,但是其中只有一个为主 Activity。其作用相当于 Java 应用程序中的 main 函数,当应用程序启动时,作为应用程序的入口首先呈现给用户。

Android 应用程序中的多个 Activity 可以直接相互调用以完成不同工作。

当新的 Activity 被启动的时候,之前的 Activity 会停止,但是不会被销毁,而是被压入“后退栈(Back Stack)”的栈顶,新启动的 Activity 获得焦点,显示给用户。

“后退栈”遵循“后入先出”的原则。当新启动的 Activity 被使用完毕,用户单击“Back”按钮时,当前的 Activity 会被销毁,而原先的 Activity 会被从“后退栈”的栈顶弹出并且激活。

当 Activity 状态发生改变时,都会通过状态回调函数通知 Android 系统。而程序编写人员可以通过这些回调函数对 Activity 进行进一步的控制。

Activity 的生命周期

从本质上讲,Activity 在生命周期中共存在三个状态,这三个状态如下:

1) 运行态

指 Activity 运行于屏幕的最上层并且获得了用户焦点。

2) 暂停态

指当前 Activity 依然存在,但是没有获得用户焦点。

在其之上有其他的 Activity 处于运行态,但是由于处于运行态的 Activity 没有遮挡住整个屏幕,当前 Activity 有一部分视图可以被用户看见。处于暂停态的 Activity 保留了自己所使用的内存和用户信息,但是在系统极度缺乏资源的情况下,有可能会被杀死以释放资源。

3) 停止态

指当前 Activity 完全被处于运行态的 Activity 遮挡住,其用户界面完全不能被用户看见。

处于停止态的 Activity 依然存活,也保留了自己所使用的内存和用户信息,但是一旦系统缺乏资源,停止态的 Activity 就会被杀死以释放资源。

Activity 在生命周期中从一种状态到另一种状态时会激发相应的回调方法,这几个回调方法如下:

名称 调用时间
onCreate(Bundle savedInstanceState) 创建 Activity 时调用。

设置在该方法中,还以 Bundle 的形式提供对以前储存的任何状态的访问。其中参数 savedInstanceState 对象是用于保存 Activity 的对象的状态。

onStart() Activity 变为在屏幕上对用户可见时调用。
onResume() Activity 开始与用户交互时调用(无论是启动还是重启一个活动,该方法总是被调用)。
onPause() 当 Android 系统要激活其他 Activity 时,该方法被调用,暂停或收回 CPU 和其他资源时调用。
onStop() Activity 被停止并转为不可见阶段时调用。
onRestart() 重新启动已经停止的 Activity 时调用。
onDestroy() Activity 被完全从系统内存中移除时调用。

该方法被调用可能是因为有人直接调用 finish() 方法或者系统决定停止该活动以释放资源。

上面 7 个生命周期方法分别在 4 个阶段按着一定的顺序进行调用,这 4 个阶段如下:

  • 启动 Activity:在这个阶段依次执行 3 个生命周期方法:onCreate、onStart 和 onResume。
  • Activity 失去焦点:如果在 Activity 获得焦点的情况下进入其他的 Activity 或应用程序,这时当前的 Activity 会失去焦点。在这一阶段,会依次执行 onPause 和 onStop 方法。
  • Activity 重获焦点:如果 Activity 重新获得焦点,会依次执行 3 个生命周期方法:onRestart、onStart 和 onResume。
  • 关闭 Activity:当 Activity 被关闭时,系统会依次执行 3 个生命周期方法:onPause、onStop 和 onDestroy。

Activity 生命周期中方法的调用过程如图 1 所示,可以很直观地了解到 Activity 的整个生命周期。

Activity生命周期
图 1  Activity 生命周期
 

本文标题:Android Activity组件及其生命周期

本文地址:http://www.hosteonscn.com/4868.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注