摘要:Activity主要是Android的四大组件之一,主要用于用户与系统的交互。
一、Activity生命周期中调用方法
1.onCreate:界面被启动的时候调用
2.onDestroy:界面被销毁的时候调用
3.onStart:界面可见的时候调用
4.onStop:界面不可见的时候调用
5.onResume:界面获取到焦点的时候调用
6.onPause:界面失去焦点的时候调用
二、任务栈
在任务栈中打开一个Activity叫做进栈,关闭一个Activity叫做出栈,任务栈主要是用来维护Activity,用来和用户进行交互,我们操作的Activity永远是栈顶的Activity。当一个应用退出的时候,实际在退出的时刻仅仅是任务栈被清空了,该应用的进程还在后台运行。该进程当系统内存不足的时候会被系统关闭。这样做的唯一理由就是:当应用再次运行的时候会提高应用的快速启动。
三、Activity的四种启动方式
1、standard模式:每打开一个Activity均会在任务栈中进栈,每按一次后退键则只将栈顶的Activity移除任务栈。
android:launchMode="standard" //默认Activity启动模式
2、singleTop模式:如果一个Activity配置成了singleTop模式,则在开启该Activity时会先检查当前任务栈栈顶Activity,如果栈顶Activity为欲开启的Activity,则直接复用栈顶的Activity。
android:launchMode="singleTop"
3、singleTask模式:如果一个Activity配置成了singleTask模式,则当多次开启该Activity前,会检查当前任务栈中是否有该Activity实例存在,如果存在,则复用该实例,并且将该实例上的所有Activity实例全部清空。
android:launchMode="singleTask"
4、singleInstance模式:如果一个Activity配置成了singleInstance模式,则启动该Activity时,其会单独创建一个任务栈,且无论开启多少个该Activity,其在任务栈中只有一个实例存在,且应用如果对应多个任务栈,则哪个Activity在最前面,哪个任务栈就在最前面。
android:launchMode="singleInstance"
注:如果没有在AndroidManifest.xml的Activity节点下配置防止横竖屏切换的属性,当该Activity被横竖切换的时候,其生命周期会先被销毁然后在重新启动。在实际的开发过程中,一般会在AndroidManifest.xml的Activity节点下配置防止横竖屏切换的属性:第一种方法: android:configChanges="orientation|keyboardHidden|screenSize";第二种方法:android:screenOrientation="portrait"或者android:screenOrientation="landscape"。