安卓 生命周期

返回栈

安卓是用Task来管理活动的,一个任务就是一组存放在栈里的活动集合,这个栈也成为返回栈  (Back Stack)      --后进先出的数据结构
finish()或者back 可以销毁一个活动,处于栈顶的出栈。栈底为    启动活动的 activity
 

活动状态: 1.运行状态        2.暂停状态    3.停止状态    4.销毁状态

运行(1)     活动  位于        栈顶
暂停(2)  活动 不在 栈顶,但可见       占用屏幕的部分区域
停止(3)     活动 不在  栈顶,不可见
销毁(4)     活动  从返回栈中    移除
 

活动的生存期:   1.onCreate()  2.onStart()  3.onResume()  4.onPause()  5.onStop()  6.onDestroy()  7.onRestart()

onCreate()  (1)在此方法中完成初始化操作:如 加载布局    绑定事件    
 
onStart()   (2)活动由     不可见变为可见                的时候调用
 
onResume() (3)活动准备好       和用户进行交互         的时候调用
 
onPause()  (4)系统准备去  启动或者恢复一个活动     的时候调用
 
onStop()     (5)活动   完全不可见            的时候调用
 
onDestroy()  (6)活动   销毁               的时候调用
 
onRestart()   (7)活动  重新启动             的时候调用
 
完整生存期:1-6    在onCreate()中完成初始化操作, onDestroy()中完成释放内存操作
 
可见生存期:2-5   活动对用户是可见的,就算是 不能交互,onStart()中  资源加载   ,onStop()中   资源释放 --------可 保证停止的活动不会占用过多内存
 
前台生存期:3-4   活动总是处于运行状态可交互
 
onStop()  和  onPause()   的区别:若启动一个对话框,onPause()会执行,onStop()不会-----------------启动对话框时只被占用了一小部分屏幕的原因
 
问题::在     活动A     上又启动   活动B    ,A会被停止 ,内存不足时A被回收,当B  back   返回时   A是ReStart()吗?
答案:不是,A将重新调用   onCreate() 重新初始化资源
 
由于上面的原因,用户体验差,出现了saveInstanceState()方法来保存数据,在onCreate()中调用相应的取值方法就可取出数据
 
 
 
 
 
 
posted @ 2018-07-30 18:15  小#安  阅读(153)  评论(0编辑  收藏  举报