1生命周期
Activity、fragment(事务)生命周期 包括跳转、旋转、传值
Activity生命周期
- activity流程图
- onCreate():创建Activity调用,用于Activity的初始化,还有个Bundle类型的参数,可以访问以前存储的状态。
- onStart():Activity在屏幕上对用户可见时调用,但还不可与用户交互
- onRestart():在activity停止后,在再次启动之前被调用。
- onResume():Activity开始和用户交互的时候调用,这时该Activity是在Activity栈的顶部,并接受用户输入。
- onPause():Activity被暂停时调用,也就是你要对你能看到的这个Activity说byebye的时候调用,这里可以做一些清理和保存工作
- onStop():Activity被停止或者Activity变成不可见时调用
- onDestroy():Activity被从内存中移除,一般发生在执行finish方法时或者Android回收内存的时候
跳转生命周期
-
步骤1(打开First Activity):经过onCreate、onStart、onResume后First Activity就展现啦;
-
步骤2(跳转至Second Activity):首先First Activity暂停(onPause),接下来Second Activity展现(onCreate、onStart、onResume),最后First Activity停止(onStop);
-
步骤3(返回到First Activity):首先Second Activity暂停(onPause),接下来First Activity重新打开并展现(onRestart、onStart、onResume),最后Second Activity停止并销毁(onStop、onDestroy);
-
步骤4(退出First Activity):经过onPause、onStop、onDestroy后First Activity暂停、停止并最终销毁。
如果销毁当前的Activity,那么就要重写Activity的两个方法
onSaveInstanceState()保存数据和 onRestoreInstanceState()还原数据
执行顺序:
onCreate
onStart
onResume
onPause
onSaveInstanceState
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
在灭屏时调用的方法
onPause
onSaveInstanceState
onStop
屏幕重新唤醒时调用的方法:
onRestart
onStart
onResume
退出程序时调用的方法:
onPause
onStop
onDestroy
切换横竖屏
在manifest.xml文件中设置android:configChanges=“orientation|keyboardHidden|screenSize”
切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
需注意的是,在4.0以后的版本需要加上ScreenSize 不然不会执行onConfigurationChanged方法
执行顺序:
onCreate
onStart
onResume
onConfigurationChanged
Fragment生命周期
onAttach(Activity)
当Fragment与Activity发生关联时调用。
onCreateView(LayoutInflater, ViewGroup,Bundle)
创建该Fragment的视图
onActivityCreated(Bundle)
当Activity的onCreate方法返回时调用
onDestoryView()
与onCreateView想对应,当该Fragment的视图被移除时调用
onDetach()
与onAttach相对应,当Fragment与Activity关联被取消时调用