生命周期,是初学Android必须要掌握的一个知识点,也是面试时最常问的知识点。最近突然发现,公司架构中关于fragment使用的代码还不够完美。因此先决定先巩固一遍Fragment生命周期,连带着Activity生命周期(两者之间还是有很大的关联),再尝试改善现有代码。关于生命周期的概念,个人觉得,设计Android的工程师们,很大程度上参考了IOS。
1、Activity生命周期介绍
Activity生命周期共有7个,可以按照3+1的模式去记忆。
这是一张标准的生命周期示意图,从上图中可以看出,onCreate<–>onDestory,onStart<–>onStop,onResume<–>onPause 3对,多出一个onRestart。
- 启动一个Activity,会依次执行onCreate(创建一个Activity时调用,可通常在此处指定Activity的布局或动态设置Activity主题)、onStart(启动这个Activity时调用,此时Activity已经可以见,但是未获得焦点不能响应用户事件)、onResume(Activity获取焦点时调用,此时可以响应用户事件)方法。
- 通常调用onPause(Activity停止响应用户事件,在切换Activity、锁屏、弹出dialog,准确说是Dialog风格的Activity,普通的dialog是属于Activity的,生命周期不变化、按下Home键时调用)方法之后,很快就会调用onStop(Activity不可见,已经停止时调用,Activity再次恢复可见状态时,需要重新调用onRestart方法)方法。当调转一个dialog 主题的Activity时,前一个Activity只会进入pause状态,而不会触发onStop。
- 执行onStop方法之后,若需要再使该Activity可用,先调用onRestart(重新启动Activity,该Activity实例占用的内存还未被释放,无须重走onCreate方法)再调用onStart、onResume。
- Activity被销毁时,会执行onDestory(释放Activity实例占用的内存,等待系统回收。或强制中断APP进程时调用。&#x