Android Activity生命周期和堆栈管理的详解
Android Activity生命周期是指Activity从创建到销毁的整个过程,包括了七个回调方法:onCreate、onStart、onRestart、onResume、onPause、onStop、onDestroy。这些方法将在Activity的生命周期中被调用,以便开发者可以在不同的生命周期中执行相应的操作。
Activity的生命周期可以分为三种小的生命周期场景:
一、一个Activity的开启到销毁:OnCreate---onStart----onResume------onPause-----Onstop---onDestroy。
二、A Activity 跳转到 到 B Activity(BActivity是完全覆盖AActivity):AOnCretate-----AOnStart----AOnResume------AOnPause------BOnCreate-----BOnStart------BOnReSume ----AOnStop--B activity 返回到A Activity生命周期执行的回调是:BOnPause---AOnRestart--AOnResume---BOnstop---BOnDestory。
三、A Activity跳转到B Activity(B Activity 是一个 对话框形式的Activity 或者 BActivty是一个透明的):AOnCretate-----AOnStart----AOnResume ------AOnPause------BOnCreate-----BOnStart------BOnReSume ----B activity 返回到A Activity生命周期执行的回调是:BOnPause---AOnResume---BOnstop---BOnDestory。
四、手机的横竖屏切换,android的生命周期方法的重新执行:onPause、onstop、ondestroy、oncreate、onstart、onresume。如果想横竖屏切换时,不重新走生命周期,需要在清单文件中配置属性:configChanges 也可以设置屏幕锁定为横屏或竖屏,screenOrientation:lanscape | portriant。
Activity的状态有四种:运行 onResume暂停 onPause停止 onStop销毁 onDestroy。
Activity的生命周期可以分为三个部分:完整的 onCreate——onDestroy、可见的 onStart——onStop、活动的 onResume——onPause。
Android Activity的堆栈管理模式采用栈的先进后出结构,每打开一个Activity,将会入栈,退出一个,将会出栈。有四种启动模式:standard 标准启动、singleTop 单一栈顶、singleTask 单一任务栈、singleInstance单一实例。
standard模式是标准的启动模式,每次启动Activity都会创建一个新的实例。
singleTop模式是单一栈顶模式,保证栈顶只有一个实例,任务栈中可能有很多实例。
singleTask模式是单一任务栈模式,保证所在的任务栈,只有一个实例。如果栈顶有其他Activity,再打开A时,将栈顶其他Activity全部出栈。
singleInstance模式是单一实例模式,保证整个系统的栈中,只有一个实例。该模式下,A将单独使用一个任务栈。