Android四大组件之Activity

2017-11-06  本文已影响10人  尼古拉斯_特仑苏

Android四大组件之Activity

1、Activity生命周期

一般情况下Activity会经历如下生命周期:
为了方便先上一下官方的Activity生命周期图解

(1)onCreate(): 表示activity正在被创建,是activity的第一个生命周期,在这期间进行页面的初始化,setContenView()加载页面布局资源、初始化一些变量等工作。

(2)onStart(): 表示activity正在启动,这个时候已经可见,但是还未出现在前台,不能和用户进行交互。这个时候activity已经出来了但我们看不到。

(3)onResume(): 表示activity已经可见了,位于前台了,可以和用户进行交互。和onStart的相同点和区别:onStart和onResume时期Activity都已可见,但onStart不在前台,不能与用户进行交互,而onResume已在前台,可以和用户进行交互。

(4)onPause(): 表示activity正在暂停,正常情况下紧接着就执行onStop,这期间可以进行一些动画停止、数据存储工作。但不能耗时,否则会影响新activity的启动。因为启动新activity时,执行onPause()后就会执行新Activity的onCreate

(5)onStop(): 表示activity即将停止,这期间可以做一些重量级的回收工作。但不能太耗时

(6)onDestroy(): 表示activity即将被销毁,这是activity最后一个生命周期,这期间可以做一些回收工作和资源回收。

(7)onRestart(): 表示activity重新启动,即从不可见状态变为可见状态时就会被调用,一般情况下都是用户操作才会调用,例如用户操作Home键或者启动一个新页面,旧页面会执行onPause和onStop,然后再回到旧页面,这时就会调用onRestart,然后再调用onStart和onResume

2、Activity启动模式

image.png image.png image.png image.png

到这里Activity启动模式就要说完了,其实还有一点与其相联系的知识,那就是Inent标签
在 Android 中,我们除了在清单文件 AndroidManifest.xml 中配置 launchMode,当然可以用 Intent 标签说事儿。启动 Activity ,我们需要传递一个 Intent,完全可以通过设置 Intent.setFlags(int flags) 来设置启动的 Activity 的启动模式。

需要注意的是:通过代码来设置 Activity 的启动模式的方式,优先级比清单文件设置更高。

FLAG_ACTIVITY_NEW_TASK
这个标识会使新启动的 Activity 独立创建一个 Task。

FLAG_ACTIVITY_CLEAR_TOP
这个标识会使新启动的 Activity 检查是否存在于 Task 中,如果存在则清除其之上的 Activity,使它获得焦点,并不重新实例化一个 Activity,一般结合 FLAG_ACTIVITY_NEW_TASK 一起使用。

FLAG_ACTIVITY_SINGLE_TOP
等同于在 launcherMode 属性设置为 singleTop。

上一篇 下一篇

猜你喜欢

热点阅读