Activity的生命周期分为正常情况和异常情况两种,其中正常指的是在用户参与下的情况,比如用户按下back键或者home键等,异常指的是由于内存需求此Activity被系统回收或者由于当前设备的Configuration发生变化(比如横竖屏切换)而导致Activity被销毁重建。
本篇只介绍正常情况下Activity生命周期的变化,这里假设有两个Activity,分别为ActivityA和ActivityB,以下简称A和B,其中A为入口
1.用户点击桌面图标进入应用时:A onCreate ------>AonStart ------>AonResume
2.点击A中的按钮进入B时:AonPause ------>BonCreate ------>BonStart------> BonResume ------> AonStop
有两个地方需要注意1)A的onPasue先执行,B的onCreate后执行
2)新的Activity的onResume执行之后旧的Activity的onStop才会执行
3)如果B的主题为透明主题A的onStop方法并不会执行
3.此时点击back键:BonPause ------> AonRestart------> AonStart------> AonResume------> Bonstop ------>BonDestory
注意:同样是B的onPasue先执行(推理:新旧Activity切换时总是旧的Activity的onPasue先执行,新的Activity的onResume执行之后旧的onStop方法才会执行,所以不能在onPasue方法中执行重量级操作,重量级的可以放在onStop方法中)
4.此时按下home键:AonPause ------> AonStop(注意A的onDestory方法并不会执行)
5.点击桌面图标重新进入: AonRestart ------>AonStart ------>AonResume(注意A的onCreate方法并不会执行)
总结:Activity一股有7个方法,除了onRestart之外其余6个都是成对对应的,其中
onCreate<--->onDestory创建与销毁
onStart<--->onStop是否可见
onResume<--->onPasue是否获得焦点(即是否可以和用户进行交互)