对onPause调用时机的误解

以前看到很多地方对Activity生命周期的pause状态定义为:Activity不在前台,但还是可见的。所以就以为如果在一个Activity中弹出一个Dialog,也会触发onPause方法。后来经试验发现这是错误的。

再仔细看了下Android官方文档:


对onPause调用时机的误解_第1张图片
这里写图片描述

上面说当Activity B在Activity A前面时,会触发Activity A中的onPause方法。 B直到A的onPause方法执行完后才会被创建,所以建议不要在onPause方法中做耗时操作。

所以,onPause被触发,并不是A的主界面处于被其它东西不完全覆盖状态,而是被某个其它Activity不完全覆盖。

Fragment的周期会追随Activity的,所以情况一样。

你可能感兴趣的:(对onPause调用时机的误解)