setContentView()被调用会执行onContentChanged事件(需要重写)
正常情况下的生命周期
1、onCreate()和onDestroy()是配对的,标志着Activity的创建与销毁
onStart()和onStop()是配对的,标志着Activity是否可见
onResume()和onPause()是配对的,标志着Activity是否在前台
2、从A打开B:
A:onPause()
B:onCreate()
B:onStart()
B:onResume()
A:onStop()
1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
Fragment生命周期分析:
1. 当一个fragment被创建的时候,它会经历以下状态.
onAttach() fragment已经关联到activity
onCreate() 系统创建fragment的时候回调他,在他里面实例化一些变量
onCreateView() 第一次使用的时候 fragment会在这上面画一个layout出来, 为了可以画控件 要返回一个 布局的view,也可以返回null。
onActivityCreated() 当Activity中的onCreate方法执行完后调用,可以在这个方法里进行Fragment自己的widget实例化和业务逻辑处理。
2. 当这个fragment对用户可见的时候,它会经历以下状态。
onStart() Activity创建或者从后台重新回到前台时被调用,也就是可见时会调用。
onResume() 和activity一致 在activity中运行是可见的。激活, Fragement 进入前台, 可获取焦点时激活。
3. 当这个fragment进入“后台模式”的时候,它会经历以下状态。
onPause() 和activity一致
onStop() 和activity一致
4. 当这个fragment被销毁了(或者持有它的activity被销毁了),它会经历以下状态。
onPause() 和activity一致
onStop() 和activity一致
onDestroyView() Fragment中的布局被移除时调用。表示fragemnt销毁相关联的UI布局, 清除所有跟视图相关的资源。
onDestroy() 销毁fragment对象, 跟activity类似了。
onDetach() Fragment和Activity解除关联的时候调用。 脱离activity。
5. 就像activitie一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象。
onCreate() 系统创建fragment的时候回调他,在他里面实例化一些变量
onCreateView() 第一次使用的时候 fragment会在这上面画一个layout出来, 为了可以画控件 要返回一个 布局的view,也可以返回null。
onActivityCreated() 当Activity中的onCreate方法执行完后调用,可以在这个方法里进行Fragment自己的widget实例化和业务逻辑处理。
6. fragments的大部分状态都和activitie很相似,但fragment有一些新的状态。
onAttached() —— 当fragment被加入到activity时调用(在这个方法中可以获得所在的activity)。
onCreateView() —— 当activity要得到fragment的layout时,调用此方法,fragment在其中创建自己的layout(界面)。
onActivityCreated() —— 当activity的onCreated()方法返回后调用此方法
onDestroyView() —— 当fragment中的视图被移除的时候,调用这个方法。
onDetach() —— 当fragment和activity分离的时候,调用这个方法。
Activity生命周期分析:
onCreate Activity创建时被调用
onRestart Activity从后台重新回到前台时被调用
onStart Activity创建或者从后台重新回到前台时被调用,也就是可见时会调用。
onResume Activity创建或者从被覆盖、后台重新回到前台时被调用
onPause Activity被覆盖到下面或者锁屏时被调用
onStop 退出当前Activity或者跳转到新Activity时被调用
onDestroy 退出当前Activity时被调用,调用之后Activity就结束了
横竖屏切换时调用顺序:
start onSaveInstanceState~~~ 横竖屏最先调用
start onPause~~~
start onStop~~~
start onDestroy~~~
start onCreate~~~
start onStart~~~
start onRestoreInstanceState~~~ 横竖屏转换完毕以后调用
start onResume~~~
Home键启动应用时不会调用:
start onCreate~~~
start onStart~~~
start onResume~~~
Home键将应用退到后台时会调用:
start onSaveInstanceState~~~
start onPause~~~
start onStop~~~
Back键退出应用时不会调用:
start onPause~~~
start onStop~~~
start onDestroy~~~
长按HOME键,选择运行其他的程序时。
start onSaveInstanceState~~~
start onPause~~~
start onStop~~~
按下电源按键(关闭屏幕显示)时:
start onSaveInstanceState~~~
start onPause~~~
从activity A中启动一个新的activity时:
start onSaveInstanceState~~~
start onPause~~~
start onStop~~~