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

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来恢复即可




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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值