自己哆哆嗦嗦参与安卓已经半年多了,现在才开始有了写博客的意识。从现在开始顺便总结过去,顺便写点博客纪念下。
每次面试都回碰到的问题:Android的生命周期,今天就来总结下:
首先是官方文档给出的生命周期图:
一个最简单的完整的Activity生命周期会调:onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy.
从onStart开始,到onPasue,activity都是可以被用户看到的。当执行onStop时,界面不可见。
假设A Activity位于栈顶,此时用户操作,从A Activity跳转到B Activity,那么执行顺序是:
A:onPause(A开始被遮挡) -> B:onCreate -> B:onStart -> B:onResume -> A:onStop(A完全被遮挡)。
如果点击Back键,将依次执行:
B:onPause -> A:onRestart -> A:onStart -> A:onResume -> B:onStop -> B:onDestroy。
大家都知道Android手机会有HOME键和BACK键,来看看按(点一下)后生命周期的区别:
如果按下Back键,系统返回到桌面,并依次执行
A:onPause -> A:onStop -> A:onDestroy。
如果按下Home键(非长按),系统返回到桌面,并依次执行
A:onPause -> A:onStop。
可以看出,按Home键activity并没有被销毁。