4 Activity的生命周期(掌握)
[1] onCreate方法 当activity创建的时候调用
[2] onDestroy方法 当Activity销毁的时候调用
[3] onStart方法 放Activity界面变成可视的时候调用
[4] onStop方法 当Activity界面不可见的时候调用
[5] onResume方法 用户可以交互:界面有按钮可以被点击了获取了焦点的时候调用
[6] onPause方法 界面上按钮不可以被点击失去了焦点
[7] onRestart方法当activity重新可见的时候调用(一般调用onRestart方法后一定会调用onStart方法,所以一般只重写onStart方法)
5 横竖屏切换Activity的生命周期
onPause-->onStop-->onDestory-->onCreate-->onStart-->onResume
Activity里面配置:
<activity
android:name=".MainActivity"
android:screenOrientation="portrait"//代表竖屏
//android:screenOrientation="landscape"//代表横屏
android:label="@string/app_name" >
<intent-filter>
<actionandroid:name="android.intent.action.MAIN" />
<categoryandroid:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
5 任务栈的概念
补充:栈(先进后出) 队列(先进先出)
任务栈(task)是和Activity有关系的
【1】打开一个页面(Activity)就叫做进栈,打开一个页面(Activity)也叫作开启一个任务;关闭一个页面(Activity)就叫做出栈。
【2】我们操作的Activity永远是任务栈的栈顶元素。
【3】任务栈是用来维护用户操作体验的
【4】应用程序退出了就是任务栈清空了
【5】一般情况,一般情况,一般情况,一个应用程序对应一个任务栈
6 Activity的四种启动模式
【1】standard
标准的启动模式,这时退出的顺序02-->01-->02-->01
【2】singleTop
Singletop单一顶部模式 在activity的配置文件中设置android:launchMode=”singleTop”
如果任务栈的栈顶存在这个要开启的activity,不会重新的创建activity,而是复用已经存在的activity。保证栈顶如果存在,不会重复创建。
应用场景:浏览器的书签
【3】singleTask
singletask单一任务栈,在当前任务栈里面只能有一个实例存在
当开启activity的时候,就去检查在任务栈里面是否有实例已经存在,如果有实例存在就复用这个已经存在的activity,并且把这个activity上面的所有别的activity都清空,复用这个已经存在的activity,保证整个任务栈里面只有一个实例存在
应用场景:浏览器的activity
如果一个activity的创建需要占用大量的系统资源(CPU,内存),一般配置这个activity为singletask的启动模式。
【4】singleInstance
singleInstance启动模式非常特殊,activity会运行在自己的任务栈里面,并且这个任务栈里面只有一个实例存在
如果你要保证一个activity在整个手机操作系统里面只有一个实例存在,使用singleInstance
应用场景:来电页面