一、前言
安卓开发岗位面试官最喜欢问的问题就是活动的生命周期,尤其是对于应届生来说,对于这种基础的问题一定要记牢。既然没有工作经验,如果基础的问题都回答不出来,那凭什么别人会相信你有潜力?
二、知识点
每个活动的生命周期中会存在四种状态:运行、暂停、停止、销毁。
- 安卓中Activity总共有七个回调函数,分别是:
①onCreate(),这个方法在活动第一次创建的时候会被调用,在里面可以加载布局,绑定事件等等。
②onStart(),活动由不可见变为可见的时候被调用。
③onResume(),活动准备好和用户进行交互的时候被调用。
④onPause(),活动暂停之前被调用,这时候活动还是可见的。
⑤onStop(),活动停止之前被调用,这时活动已经不可见了。
⑥onRestart(),活动由停止状态变为运行状态之前被调用。
⑦onDestroy(),活动被销毁之前被调用,之后活动就进入销毁状态。 - 下图是官网给出的活动生命周期图:
三、题目
- 按下HOME键时会调用哪些方法?
答:onPause()、onStop()。 - 接着第一问,返回桌面之后,再返回来,会调用哪些方法?
答:依次调用onRestart()、onStart()、onResume()。 - 按下BACK键时会调用哪些方法?
答:按下BACK活动最终会被销毁,会依次调用onPause()、onStop()、onDestroy()。 - 活动A进入活动B,两个活动各自会调用哪些方法?(魅族面试,有点坑)
答:A的onPause()→B的onCreate()、onStart()、onResume()→A的onStop()。
(注意: 活动A的onStop()的是最后执行的,因为之前说了,只有活动完全不可见的时候onStop()方法才会被调用,别理想当然地认为它在onPause()方法之后执行) - 接着第5问,按下BACK键活动从B返回A,会调用哪些方法。
答: B的onPause()→A的onRestart()、onStart()、onResume()→B的onStop()、onDestroy()。 - 锁屏的时候会调用活动的什么方法?(斗鱼笔试)
答:onPause()、onStop()。 - 接着上一问,活动从锁屏再亮屏,会调用什么方法?(斗鱼笔试)
答:onRestart()→onStart()→onResume()。
四、总结
- 按下HOME键、锁屏,活动没有被销毁、按下BACK键活动才会被销毁。像从A活动进入到B活动,A活动只是停止了,按下BACK键返回A活动,B活动会被销毁,A活动则是被重启了。
- 其实再怎么说,也无法真正地理解,想要记得牢固一点,还是得亲自创建一个项目实践一下。