美团二面被打击,遇到一个最基础的问题:Activity的生命周期,回来一番恶补,总结如下

来源:互联网 发布:哪里获得省市县的数据 编辑:程序博客网 时间:2024/05/16 08:28

1.生命周期中过程参见帮助文档,基本百度一下都可以看到一大堆,感觉自己还是要写下来,大脑才记得住一些可怜


此图大家应该都看过,我就不重复说这个里面的内容。

2.小弟是一所985的非计算机专业编程爱好者,昨天面试美团,被考官问到了生命周期中的细节问题,当时自以为知道生命周期的过程,写出来,但却经不起细问。

(问题一)当Activity非法退出的时候,它的生命周期函数是怎样执行的;

(问题二)当A启动B的时候,它们各自的生命周期是怎样执行的;

(问题三)当Activity被中断时,要保存一些临时数据怎么办;

3.经过一番恶补,总结如下:

(1)当activity非法退出,这个问题在网上百度了一下,大致都觉得App的process 已经killed,所以不存在说它的生命周期里的函数要执行哪些,而是当前程序执行到哪里就在哪里了.

(2)当A启动B,这个要分两种情况:

I.A启动B,B是全覆盖了A,A不可见了:  A onPause → B onCreate  →B onStart →B onResume  → A onStop

II.A启动B,B 是那种对话框形式,也就是透明形式,A仍可见: A onPause  →B onCreate  →B onStart  →B onResume  ,这里A不会执行onStop

                                                                                                   如果这时关掉B这个对话框,则 B onPause  →A onResume  →B onStop  →B onDestroy;


(3)要解决Activty被回收时,临时数据的保存问题,就覆写Activity中的onSaveInstanceState(Bundle state)这个方法,也就是把临时数据存储到Bundle中来;

onSaveInstanceState()这个方法是在onStop调用前执行的;如果要恢复数据,则在onCreate(Bundle savedInstanceState)中的这个输入参数bundle来恢复即可




哎,美团面试后发现自己的基础知识很单薄,还得好好学习!

0 0
原创粉丝点击