Activity生命周期和四种启动模式

前言:

activity是用户和应用程序交互的窗口,一个activity相当于我们实际中的一个网页,当打开一个屏幕时,之前的那一个屏幕会被置为暂停状态,并且压入历史堆栈中,用户可以通过操作返回到以前打开过的屏幕。activity的生命周期:即“产生、运行、销毁”,但是这其中会调用许多方法onCreate(创建) 、onStart(激活) 、onResume(恢复) 、onPause(暂停) 、onStop(停止) 、onDestroy(销毁) 、onRestart(重启)。

Activity生命周期简介:

Activity生命周期(掌握)
void onCreate()
        Activity已经被创建完毕
void onStart()
        Activity已经显示在屏幕,但没有得到焦点
void onResume()
        Activity得到焦点,可以与用户交互
void onPause()
        Activity失去焦点,无法再与用户交互,但依然可见
void onStop()
        Activity不可见,进入后台
void onDestroy()
        Activity被销毁
void onRestart()
        Activity从不可见变成可见时会执行此方法

完整生命周期
onCreate-->onStart-->onResume-->onPause-->onStop-->onDestory
可视生命周期
onStart-->onResume-->onPause
一、当执行程序时,会调用onCreate-->onStart-->onResume
Activity生命周期和四种启动模式_第1张图片
二、当进入另一个Activity时,当前主Activity执行onPause-->onStopActivity生命周期和四种启动模式_第2张图片
三、当摧毁第二个Activity时,主Activity进入onRestart()-->onStart-->onResume
Activity生命周期和四种启动模式_第3张图片

四、摧毁主Activity时执行;onPause-->onStop-->onDestory

Activity生命周期和四种启动模式_第4张图片
Activity的四种启动模式(掌握)
每个应用会有一个Activity任务栈,存放已启动的Activity
Activity的启动模式,修改任务栈的排列情况
standard 标准启动模式
singleTop 单一顶部模式 
如果任务栈的栈顶存在这个要开启的activity,不会重新的创建activity,而是复用已经存在的activity。保证栈顶如果存在,不会重复创建。
singeTask 单一任务栈,在当前任务栈里面只能有一个实例存在
* 当开启activity的时候,就去检查在任务栈里面是否有实例已经存在,如果有实例存在就复用这个已经存在的activity,并且把这个activity上面的所有的别的activity都清空,复用这个已经存在的activity。保证整个任务栈里面只有一个实例存在
singleInstance启动模式非常特殊, activity会运行在自己的任务栈里面,并且这个任务栈里面只有一个实例存在
* 如果你要保证一个activity在整个手机操作系统里面只有一个实例存在,使用singleInstance


你可能感兴趣的:(安卓开发总结)