安卓开发教程20:初识 Activity (中)

35 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第20天,点击查看活动详情

上一篇文章中,我们弄明白 Activity 的基本概念,Activity 是什么,怎么启动一个 Activity ,怎么关闭一个 Activity ,那么今天我们来看一下 Activity 的生命周期。

首先我们来说一下什么是生命周期,我的理解就是一个事物的一生,从出生到结束的一个过程。比如说我们人的一生,从出生逐渐长大经历了不同的阶段,婴儿 -> 幼年 -> 青少年 -> 成年 -> 中年 -> 老年 -> 死亡。那么我们在不同的人生阶段有不同的思维方式、做事方式,我们需要履行的责任与义务也不尽相同。

那么一个 Activity 的一个生命周期也有不同的阶段,所做的事情也不一样,我们必须充分的了解它在每个阶段的作用以及变化,才可以在开发过程中实现我们的需求。ok 那么下面我们先来看一下 Activity 的声明周期。

image.png

这张图是 Activity 的一个生命周期,其中我用四种颜色的箭头标注了四个路线,我们来分别了解它们的含义。

红色路线

这条线从上到下贯穿了 整个 Activity ,其含义就是从 Activity 的出生到死亡的一整个周期所包含的 6 个阶段,它们分别是:

方法说明解释
onCreate创建 Activity把页面布局加载进内存,进行初始化状态
onStart开始 Activity把 Activity 显示到屏幕中,准备就绪状态
onResume恢复 Activity把 Activity 进入活跃状态,可以与用户产生交互
onPause暂停 Activity页面进入暂停状态,无法与用户产生交互
onStop停止 Activity页面不在屏幕中显示
onDestroy销毁 Activity回收 Activity 所占用的资源,把页面从内存中清除

那么在代码中如何来操作,其实很简单,我们在java的代码中可以看到 Android Studio 以及帮我创建了 onCreate 方法。其它的几个方法,就如同默认创建好的 onCreate 方法一样,跟着写在下面就好了。

image.png

载入载入载入

黄色路线

接下来我们来看 黄色路线,它发生在 onStop -> onStart 之间,可以说它是一个可见的区间,就是从用户第一眼看见到看不见的一个过程。那么在这之间有一个 onRestart 它代表重启 Activity ,就是把 Activity 重新载入内存中。

例如:

Activity A 进入 onResume 之后发生了跳转事件

-> 跳转到 Activity B 的时候

-> Activity A 就进入了 onPause -> onStop

-> 在 Activity B 我们点击了返回按钮,返回到 Activity A

-> 这个给时候就 进入了 onRestart

-> 紧接着 Activity A 再次进入 onStart -> onResume

蓝色路线

紧接着来我们来看 蓝色路线,接着上面的黄色路线来说。

Activity A 进入 onResume 之后发生了跳转事件

-> 跳转到 Activity B 的时候

-> Activity A 就进入了 onPause -> 此时发生了返回事件 -> onStop

用文字描述就是 在 Activity A 还没有进入 onStop 的时候 我们点击了返回,那么此时就会重新进入 onResume。并不执行onStop。

绿色路线

最后我们来看绿色路线,这个其实比较好理解。

当进入 onStop 就是说我们的应用被隐藏起来了

-> 比如说用户切回桌面了,或者打开别的应用的时候

-> 那么由于某些原因导致手机内存不足,系统会自动帮用户把暂时不用的 应用程序杀掉

-> 当用户再次打开 我们的应用的时候,就会重新进入 onCreate -> onStart

其实它们之间各种状态的转换过程,简单的来说就是打开和关闭两种:

  1. 打开新页面 onCreate -> onStart -> onResume
  2. 关闭旧页面 onPause -> onStop -> onDestroy

ok 这些就是 Activity 的生命周期 以及它的几条路径。(如果我们有前端基础,比如学过Vue 那么对于这个生命周期理解会非常的快)其实主要还是要充分的理解它们的概念,以便于可以在恰当的时候做相应的处理,以满足我们的需求。