Activity的生命周期

来源:互联网 发布:老k平面户型优化设计 编辑:程序博客网 时间:2024/05/16 13:56

Activity的生命周期:
这里写图片描述
这就是Activity的主要生命周期
Activity的生命周期,分别对应着oncreate(),onstarty(),onResume(),onPause(),onStop(),onDestroy(),onrestart()几个方法

onCreate(Bundle savedInstanceState):创建activity时调用。当activity不可见后onstop后,当长时间不启动,系统内存低时,被系统回收掉后在次启动时会调用oncreate(),当activity 不可操作后其他程序需要内存时,然后在重新让Activity启动,会调用oncrate()
onRestart():重新启动activity时调用。当activity不可见后,在没有销毁前重新启动时,会调用onrestart(),在调用 onstart(),onresume()
onStart():activity变为在屏幕上对用户可见时调用。
onResume():activity获取焦点时,开始与用户交互时调用,在界面展示中当界面中的控件中间有重新获取焦点也会调用,当睡眠后重新展示时也会调用
onPause():activity被暂停调用(弹对话框时会调用),当用户不可以操作时调用。
onStop():activity被停止并转为不可见阶段及后续的生命周期事件时调用,activity长时间不使用(onpause()onstop()这两种方法调用后有可能会被系统回收,若希望回收后仍能保存数据,在回收时会调用onsaveinstance()bundle存值再创建时获得的参数就可以获得穿过来的数据(非持久型数据)在被系统回收后会调用onrestoreinstance())
onDestroy():activity被完全从系统内存中移除时调用,该方法被调用,或调用finish()关闭activity时会调用

具体的使用情况:
当Activity启动后
onCreate()—>onStart()—>onResume()
当点击back键后
onPause()—>onStop()—>onDestroy()
当点击Home键后
onPause()—>onStop()
点击Hme键后在重新启动Activity时
若Activty没有被系统关闭进程则onRestart()—>onStart()—>onResume()
若Activty被系统关闭进程则onCreate()—>onStart()—>onResume()
当弹窗时执行的方法
onPause()
弹窗后重新启动时
若Activty没有因为内存紧张被系统回收
onResume()重新可操作
屏幕旋转时的生命周期

不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,横屏时会执行一次,切竖屏时会执行两次切
设置Activity的android:configChanges=”orientation”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
设置Activity的android:configChanges=”orientation|keyboardHidden”时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法在横竖屏切换时,如何保存Activity中的数据
在横竖屏切换时,如何保存Activity中的数据
在activity被销毁时会调用onSaveInstanceState()方法将数据保存在其中

0 0
原创粉丝点击