持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第20天,点击查看活动详情
上一篇文章中,我们弄明白 Activity 的基本概念,Activity 是什么,怎么启动一个 Activity ,怎么关闭一个 Activity ,那么今天我们来看一下 Activity 的生命周期。
首先我们来说一下什么是生命周期,我的理解就是一个事物的一生,从出生到结束的一个过程。比如说我们人的一生,从出生逐渐长大经历了不同的阶段,婴儿 -> 幼年 -> 青少年 -> 成年 -> 中年 -> 老年 -> 死亡。那么我们在不同的人生阶段有不同的思维方式、做事方式,我们需要履行的责任与义务也不尽相同。
那么一个 Activity 的一个生命周期也有不同的阶段,所做的事情也不一样,我们必须充分的了解它在每个阶段的作用以及变化,才可以在开发过程中实现我们的需求。ok 那么下面我们先来看一下 Activity 的声明周期。
这张图是 Activity 的一个生命周期,其中我用四种颜色的箭头标注了四个路线,我们来分别了解它们的含义。
红色路线
这条线从上到下贯穿了 整个 Activity ,其含义就是从 Activity 的出生到死亡的一整个周期所包含的 6 个阶段,它们分别是:
方法 | 说明 | 解释 |
---|---|---|
onCreate | 创建 Activity | 把页面布局加载进内存,进行初始化状态 |
onStart | 开始 Activity | 把 Activity 显示到屏幕中,准备就绪状态 |
onResume | 恢复 Activity | 把 Activity 进入活跃状态,可以与用户产生交互 |
onPause | 暂停 Activity | 页面进入暂停状态,无法与用户产生交互 |
onStop | 停止 Activity | 页面不在屏幕中显示 |
onDestroy | 销毁 Activity | 回收 Activity 所占用的资源,把页面从内存中清除 |
那么在代码中如何来操作,其实很简单,我们在java的代码中可以看到 Android Studio 以及帮我创建了 onCreate 方法。其它的几个方法,就如同默认创建好的 onCreate 方法一样,跟着写在下面就好了。
载入载入载入
黄色路线
接下来我们来看 黄色路线,它发生在 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
其实它们之间各种状态的转换过程,简单的来说就是打开和关闭两种:
- 打开新页面 onCreate -> onStart -> onResume
- 关闭旧页面 onPause -> onStop -> onDestroy
ok 这些就是 Activity 的生命周期 以及它的几条路径。(如果我们有前端基础,比如学过Vue 那么对于这个生命周期理解会非常的快)其实主要还是要充分的理解它们的概念,以便于可以在恰当的时候做相应的处理,以满足我们的需求。