Activity的生命周期有哪些都熟悉的不要不要的,都是成双成对的。盗用一下别人的图,自己就懒得画了。
![](https://img.haomeiwen.com/i6884634/638daed97e0d74fd.png)
其中,onResume——onPause和onStart——onStop,在正常的使用过程中,基本上都会一起出现。比如新打开一个正常的activity或者按下home,都会经过onPause和onStop。
那么具体有什么区别的,
从定义上来说
onPause表示当前页面失去焦点。
onStop表示当前页面不可见。
我觉得这样的解释更清晰。
所以一般来说,正常的页面切换,失去焦点后,页面也就不可见了。但是有特殊的情况,比如页面失去了焦点但是依旧可见。什么情况下会这样呢?比如打开的是activity的主题是透明的,或者非当前页面的dialog等等。
举个板栗子
![](https://img.haomeiwen.com/i6884634/6971faab57eed43b.png)
dialog的主题页面,这个时候,打开着一个页面,就只会执行onPause,而不会执行onStop。
所以虽然平时使用这两个没啥区别,但是也要知道具体的细节。在特殊的情况下,才能避免踩坑。建议对应的逻辑,还是写到对应的生命周期方法中。
网友评论