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()方法将数据保存在其中
这就是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()方法将数据保存在其中
相关文章推荐
- 算法导论之堆排序相关
- wonderware配置-DAServer Manager教程 2
- 【Android】22、活动的启动模式——singleInstance
- 有return的情况下try catch finally的执行顺序(最有说服力的总结)
- pythoneer 的三大神器—pip入门基础教程
- 面试:数组:矩阵清零
- [他山之玉]施一公:少年壮志不言愁
- 常用正则表达式大全,手机、电话、邮箱、身份证(最严格的验证)、IP地址、网址、日期等,一般前台js验证
- 【树形递归】
- protected权限
- GitLab的简单使用
- Jdbc常用操作总结
- 【腾讯Bugly干货】Android性能优化典范之多线程篇
- 《百鸟朝凤》,以匠心会知音
- R语言merge数据框并写入文件
- Apaache CXF 2.7 与Spring 3.0.7 集成
- javascript改变input radio的样式
- [组合数学] BZOJ 4403 序列统计
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-zookeeper全局唯一id生成
- 习题8-7 UVA - 11925 Generating Permutations 生成排列(构造)