您的位置:首页 > 其它

Activity的生命周期

2016-05-20 16:26 246 查看
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()方法将数据保存在其中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: