以前看到很多地方对Activity生命周期的pause状态定义为:Activity不在前台,但还是可见的。所以就以为如果在一个Activity中弹出一个Dialog,也会触发onPause方法。后来经试验发现这是错误的。
再仔细看了下Android官方文档:
上面说当Activity B在Activity A前面时,会触发Activity A中的onPause方法。 B直到A的onPause方法执行完后才会被创建,所以建议不要在onPause方法中做耗时操作。
所以,onPause被触发,并不是A的主界面处于被其它东西不完全覆盖状态,而是被某个其它Activity不完全覆盖。
Fragment的周期会追随Activity的,所以情况一样。
本文纠正了关于Android Activity生命周期中pause状态的常见误解,强调pause并非由界面被其他元素遮挡触发,而是由另一个Activity的创建导致。通过详细解析官方文档,揭示了pause状态的真实含义,并提供Fragment生命周期的相似对比。
595

被折叠的 条评论
为什么被折叠?



