浅析onWindowsFocusChanged()方法

节选自:浅析onWindowsFocusChanged()方法


概述

从字面上来讲,onWindowsFocusChanged()方法是指当窗口焦点变化的时候;从意义来说,onWindowsFocusChanged()就是指当前的Activity的Windows(窗口)获取或者失去焦点时这个方法就会被调用,并且当回调这个方法时,Activity是完全可见的。

在Activity生命周期中,onStart(), onResume(), onCreate()都不是布局visible的时间点,真正的visible时间点是onWindowFocusChanged()函数被执行时。从onWindowFocusChanged()被执行起,用户可以与应用进行交互了,换句话说,如果你想要在Activity加载后做些操作,可以在这个方法里调用而这之前,对用户的操作需要做一点限制。

onWindowFocusChanged()的使用情景与作用

根据介绍可以了解,onWindowFocusChanged()使用于以下等情景:

  1. 首次进入一个Activity后会在onResume()方法后面调用;
  2. 从Activity 跳到另一个Activity,新的窗口会获取焦点, 旧的Activity的窗口会失去焦点;
  3. 应用进入后台,窗口失去焦点;
  4. 应用从后台返回当前, 窗口重新获取焦点;

因此其可以有如下作用:

  1. 监控一个Activity是否载完毕;
  2. 在Activity加载后进行一些操作,如获取手机屏幕的高度和宽度;
  3. 当Activity挂起或恢复时,可以在方法内进行一些数据的保存或恢复的操作;

发表评论