Activity和Fragment的生命周期是面试时经常会被问到的问题,下面我们一起来对其进行探讨。
首先是Activity。
Activity在其生命中有四种状态:
1.运行状态。Activity获得焦点。
2.暂停状态。Activity失去焦点,但是依然可见。比如手机收到短信,系统弹出一个短信窗口。
3.停止状态。Activity失去焦点,且完全不可见。
4.销毁状态。Activity结束,或者Activity所在的Dalvik进程被结束。
以下是谷歌官方给出的Activity生命周期及相关的回调方法:
从图中可以看出:
onCreate(Bundle savedStatus):创建Activity时被回调。该方法只会被调用一次。
onStart():启动Activity时被回调。
onRestart():重新启动Activity时被回调。
onResume():恢复Activity时被回调,onStart()方法后面一定会调用onResume()方法。
onPause():暂停Activity时被回调。
onStop():停止Activity()时被回调。
onDestroy():销毁Activity时被回调,该方法只会被调用一次。
那么如果你在玩游戏,不知道你有没有想过:
玩游戏时进来了电话,需要保存游戏状态,应该覆盖哪个方法?
当再次切换回游戏,恢复游戏状态,应该在哪个方法里重写?
下一次将探讨Fragment的生命周期。
参考书籍《疯狂的Android讲义》