为面试做准备之深度解析Activity生命周期(01)
2014-03-07 21:03
369 查看
本系列是我面试的时候面试官问我的问题,我在这儿写下来,希望帮助更多的人。
说来惭愧,做了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 一起交流
转载请注明出处。
说来惭愧,做了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 一起交流
转载请注明出处。
相关文章推荐
- activity生命周期中方法解析
- Activity生命周期一般解析
- Activity生命周期解析(有图有真相)
- android源码中对Activity的各个生命周期方法注释内容【被我忽略的地方】
- activity生命周期(一)
- android activity生命周期
- Activity生命周期
- Android Activity生命周期
- Activity生命周期各方法简单说明
- 关于activity生命周期
- 【Android】Activity生命周期(亲测)
- 关于Activity生命周期的理解
- android 之activity生命周期(转载)
- android activity生命周期
- 【架构分析】Android锁屏与Activity生命周期的变化
- 基础总结篇之一:Activity生命周期
- Android Activity生命周期
- Activity生命周期
- 知识点总结 Activity生命周期七种方法
- 【Android】基础总结篇之一:Activity生命周期