Activity和Fragment生命周期

Activity生命周期

onCreate() 活动第一次创建时调用。
onStart() 活动由不可见变为可见的时候调用
onResume() 准备好和用户进行交互的时候调用。
onPause() 在系统准备去启动或恢复另一个活动时调用,这个方法执行速度一定要快,不然会影响新的栈顶活动。
onStop() 活动完全不可见的时候调用。
onDestroy() 活动销毁前调用。
onRestart() 由停止状态变为运行状态之前调用。
Another activity comes into the foreground
The activity is no longer visible
User returns to the activity
The activity is finishing or being destoryed by the system
User navigates to the activity
Paas with higher priority need memory
User navigates to the activity
Activity launched
onCreate
onStart
onResume
Activity running
onPause
onStop
onDestory
onRestart
App process killed
Activity shut down

Fragment生命周期

setUserVisibleHint() 设置Fragment可见或不可见时会调用此方法。该方法里面可以通过调用getUserVisibleHint()获得Fragment的状态是可见还是不可见的,如果可见则进行加载操作
onAttach() 执行该方法时,Fragment于Activity已经完成绑定,该方法有一个Activity类型的参数,代表绑定的Activity,这时你可以执行诸如mActivity=activity的操作
onCreate() 初始化Fragment,可通过参数savedInstanceState获取之前保存的值
onCreateView() 初始化Fragment的布局。加载布局和findViewById的操作通常在此函数内完成,但是不建议耗时的操作,比如读取数据库数据列表
onActivityCreated() 执行该方法时,于Fragment绑定的Activity的onCreate方法已经执行完成并返回,在该方法内可以进行与Activity交互的UI操作,所以在该方法之前Activity的onCreate方法并未执行,如果提前进行交互操作,会引发空指针异常。
onStart() 执行该方法时,Fragment由不可见变为可见状态
onResume() 执行该方法时,Fragment处于活动状态,用户可与之交互
onPause() 执行该方法时,Fragment处于暂停状态,但依然可见,用户不能与之交互。
onSaveInstanceState() 保存当前Fragment的状态。该方法会自动保存Fragment的状态,比如EditText键入的文本,即使Fragment被收回又重新创建,一样能恢复Edittext之前键入的文本
onStop() 执行该方法时,Fragment完全不可见
onDestoryView() 销毁与Fragment有关的视图,但未与Activity接触绑定,依然可以通过onCreateView方法重新创建视图。通常在**ViewPager+Fragment**的方式下调用此方法
onDestory() 销毁Fragment。通常按Back键退出或Fragment被回收时调用此方法
onDetach() 接触与Activity的绑定,在onDestory方法之后调用
User navigates backward or fragment is reomved/replaced
the fragment is added to the back stack then removed/replaced
the fragment returns to the layout from the back stack
Fragement is added
onAttatch
onCreate
onCreateView
onActivityCreated
onStart
onResume
Fragment is active
onPause
onStop
onDestoryVIew
onDestory
onDetach
Fragment is destoryed

Activity横屏时生命周期的变化

如果在Androidmanifests.xml给Activity添加了下面那句代码,则不会进行生命周期的方法调用,只调用了onConfigurationChanged

android:configChanges="orientation|screenSize"

否则进行如下的生命周期变化

这时候换横屏
摧毁竖屏后,创建横屏的
竖屏打开一个页面
onCreate
onStart
onResume
onPause
onStop
onDestory

https://www.cnblogs.com/fajieyefu/p/6092465.html

你可能感兴趣的:(Android)