首页 > 代码库 > Activity的生命周期
Activity的生命周期
Activity 有三个状态:
l 当它在屏幕前台时,响应用户操作的Activity, 它是激活或运行状态.
l 当它上面有另外一个Activity,使它失去了焦点但仍然对用户可见时(如右图), 它处于暂停状态.
l 当它完全被另一个Activity覆盖时则处于停止状态.
* 开启:onCreate()-->onStart()-->onResume()
* 关闭:onPause()-->onStop()-->onDestroy()
* 最小化:onPause()-->onStop()
* 最大化:onRestart()-->onStart()-->onResume()
BACK键
按Back键时,应用程序将结束,将先后调用onPause()->onStop()->onDestory()三个方法。
再次启动App时,会执行onCreate()->onStart()->onResume()
HOME键
当我们按HOME的时候,Activity先后执行了onPause()->onStop()这两个方法,
这时候应用程序并没有销毁。而当我们从桌面再次启动应用程序时,则先后分别执行了onRestart()->onStart()->onResume()三个方法
注意:当Activity在后台时候,如果系统内存不够用,后台的Activity很有可能会被强制销毁回收内存的,那么一定会触发onSaveInstanceState(Bundle outState) 方法,我们可以把想保存的数据保存在 outState对象里,等Activity被重新创建执行onCreate(Bundle saveInstanceState) 从参数saveInstanceState再读取保存的数据
ActivityA 打开 ActivityB
- A:onPause()
- B:onCreate()
- B:onStart()
- B:onResume()
- A:onStop()
- 但是,如果ActivityB的样式是Dialog样式,B没有完全遮挡A,ActivityB的生命周期跟刚才一样,但是ActivityA并没有执行onStop()
ActivityB 返回 ActivityA
依次会执行:
- B:onPause()
- A:onRestart()
- A:onStart()
- A:onResume()
- B:onStop()
- B:onDestory()
横竖屏切换activity的生命周期
* 先销毁activity,然后在重新创建一个新的activity页面
* 固定activity的屏幕朝向 screenOrientation
* landscape :横屏
* portrait :竖屏,默认方向
* sensor :自适应
* 使activity不敏感屏幕朝向的变化
* android:configChanges="orientation|keyboard|screenSize"
Activity的生命周期
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。