onWindowFocusChanged重要作用
[TOC]
转自: http://blog.csdn.net/pi9nc/article/details/9237031
- Activity生命周期中,onStart, onResume, onCreate都不是真正visible的时间点,真正的visible时间点是onWindowFocusChanged()函数被执行时。
-
用途
-
比如我们在做OTT项目时候,我们就是在这onWindowFocusChanged来获取主按键的具体位置和宽高的,而在其他标准生命周期的接口中调用都是获取不到的,比如在onResume,onStart中都获取不到信息。
- 这个onWindowFocusChanged指的是这个Activity得到或者失去焦点的时候 就会call;
相关执行打印
entry:
onStart—->onResume—->onAttachedToWindow———–>onWindowVisibilityChanged–visibility=0———->onWindowFocusChanged(true)——->exit:
onPause—->onStop—->onWindowFocusChanged(false) ———————- (lockscreen)exit :
onPause—–>onWindowFocusChanged(false)——–>onWindowVisibilityChanged–visibility=8————>onStop(to another activity)
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
}