为面试做准备之深度解析Activity生命周期(01)

本系列是我面试的时候面试官问我的问题,我在这儿写下来,希望帮助更多的人。


说来惭愧,做了android一年多面试官问我activity生命周期我居然不能详细的说出来,不能说出来就去了解透彻呗。


面试官是这样问我的:你有了解过android activity ?我说了解过,然后他问我activity如果突然异常退出会触发哪一个生命周期,显然我说错来,现在来了解下吧。


先把所以的生命周期给打印出来。



运行下,看下会输出什么


它先触发的是onCreate方法,然后再是onStart和onResume,这样想下,如果我们程序有逻辑错误,进入就报错会触发什么周期呢,在onCreate方法里面出错应该就会只是执行onCreate这个方法吧,试下

OK,它什么都没输出,说明如果再onCreate里面出错就不会再执行其他周期,程序由于异常退出只会执行它所在的生命周期里面。


onResume过后就是Activity Runing 了,这里是官方的说明。


继续测试它当返回过后会触发什么周期呢?



它是先输出onPause然后停了下,输出onStop和onDestroy.


继续测试如果其他activty跳转过来了呢,他会执行什么方法?


我们这是从MainActivity跳转(Intent)到Example1_Activity的,它先在MainActivity里面执行onCreate,onStart,OnResume,这三个周期,一般情况下都是先执行这三个,我们Intent过,所以它会先执行onPause,跳转过Example1_Activity后在执行同样的三个方法,当Example1_Activity中OnResume执行完成之后由于Example1_Activity在MainAcitivty 的上面所以MainActivity就会执行onStop方法。


继续测试如果我们在跳转过后执行finish();方呢,他会有什么变化


看见了么,他会先在MainActivity里面执行OnCreate方法,我们的跳转(Intent)是在onCreate里面执行的,当跳转过后会先去Example1_Activity里面执行onCreate,onStart,OnResume,这三个周期,这时候才算跳转(Intent)完成,完成后才会到MainActivity里面去执行finish();方法,然而执行finish()方法后就会触发onDestroy周期,而这个周期在官网上面写的是最后一个,也就是直接没了(也不知道这样准不准确)。

如果再回到MainActivity里面又会执行什么呢


我们看见Example1_Activity里面会执行onPause(暂停),我们在Example1_Activity里面没有用到finish方法,所以他不会执行onDestroy方法,跳转到MainActivity里面过后,由于我们MainActivity的onCreate方法里也有一个跳转语句,当MainActivity的Oncreate方法的跳转语句执行完成之后会到Example1_Activity里面去执行onCreate,onStart,OnResume,这三个周期,执行完成之后会到Mainactivity里面去执行onDestroy(销毁)方法,下面输出Examp_Activity中的onStop是因为我们在Example1_Activity里面执行跳转的时候会到mainactivity里面执行mainactivity里面的,mainactivity执行完了会回到Example1_Activity里面执行onStop方法



这篇文章就先写到这儿吧,如有任何不懂欢迎到QQ群:48761902 一起交流



转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值