1.这个函数的具体作用不太清楚,但网上有人说是 ,当activity得到或者失去焦点的时候,就会调用这个方法

先看如下代码

 @Override
public void onWindowFocusChanged(boolean hasFocus) {
android.util.Log.e("zhangshuli", "win");
mHistoryDisplayButton.getLocationOnScreen(mHistoryDisplayButtonLocation);
mHistoryDisplayButtonLocationX = mHistoryDisplayButtonLocation[0];
mHistoryDisplayButtonLocationY = mHistoryDisplayButtonLocation[1];
mHistoryHideButton.getLocationOnScreen(mHistoryHideButtonLocation);
mHistoryHideButtonLocationX = mHistoryHideButtonLocation[0];
mHistoryHideButtonLocationY = mHistoryHideButtonLocation[1];
mHistoryDisplayListWidth = mHistoryDisplayList.getWidth();
mHistoryHideLastLocationX = mHistoryHideButtonLocationX - mHistoryDisplayListWidth ;
mRotationAngle = (135f)/((float)mHistoryDisplayButtonLocationX -(float)mHistoryHideLastLocationX);
android.util.Log.e("zhangshuli", "angle"+mRotationAngle);
android.util.Log.e("zhangshuli", "mHistoryDisplayListWidth"+mHistoryDisplayListWidth);
android.util.Log.e("zhangshuli", "mHistoryHideLastLocationX"+mHistoryHideLastLocationX);
android.util.Log.e("zhangshuli", "mHistoryHideButtonLocationX"+mHistoryHideButtonLocationX);
android.util.Log.e("zhangshuli", "mHistoryDisplayButtonLocationX"+mHistoryDisplayButtonLocationX); super.onWindowFocusChanged(hasFocus);
}

当我进入和退出这个activity的时候,我们可以看到打印的log如下

1)进入

- ::30.801 E/zhangshuli( ): nihao
- ::31.241 E/zhangshuli( ): win
- ::31.241 E/zhangshuli( ): angle0.
- ::31.241 E/zhangshuli( ): mHistoryDisplayListWidth362
- ::31.241 E/zhangshuli( ): mHistoryHideLastLocationX378
- ::31.241 E/zhangshuli( ): mHistoryHideButtonLocationX740
- ::31.241 E/zhangshuli( ): mHistoryDisplayButtonLocationX616

2)退出

- ::35.736 E/zhangshuli( ): win
- ::35.736 E/zhangshuli( ): angle0.
- ::35.736 E/zhangshuli( ): mHistoryDisplayListWidth362
- ::35.736 E/zhangshuli( ): mHistoryHideLastLocationX378
- ::35.736 E/zhangshuli( ): mHistoryHideButtonLocationX740
- ::35.736 E/zhangshuli( ): mHistoryDisplayButtonLocationX616

所以我们知道,这个方法是在activity加载或者退出的时候都会调用。对它唯一的认识就是,如果你想要得到一个控件的位置坐标,那么你必须在这个方法中执行相应的代码,在oncreate中是得不到的

我们现在再把它跟Oncreate做一下比较

log打印如下

 @Override
public void onCreate(Bundle state) {
super.onCreate(state); android.util.Log.e("zhangshuli", "nihao");
} @Override
public void onWindowFocusChanged(boolean hasFocus) {
android.util.Log.e("zhangshuli", "win"); super.onWindowFocusChanged(hasFocus);
}

1)当我们启动应用的时候

- ::37.577 E/zhangshuli( ): nihao
- ::38.178 E/zhangshuli( ): win

2)按下HOME建

- ::19.584 E/zhangshuli( ): win

3)按下HOME建再次进入

- ::25.664 E/zhangshuli( ): win

4)直接退出

- ::30.899 E/zhangshuli( ): win

可以得到一个结论,就是oncreate比focus先执行。但是,如论程序怎么走,都会执行focus

onWindowFocusChanged-屏幕焦点函数回调情况的更多相关文章

  1. 如何在不使用系统函数的情况下实现PHP中数组系统函数的功能

    PHP中为我们提供了各种各样的系统函数来实现我们需要的各种功能,那么,在不使用系统函数的情况下我们要怎样来实现这些功能呢?以下就是几种系统函数的实现方式. 首先,我们来定义一个数组: $arr= ar ...

  2. 闭包函数&回调函数

    闭包函数&回调函数 谈到回调函数,不得不提匿名函数;匿名函数,也叫闭包函数,也就是没有名字的函数,它可以单独存在,也可以将其赋值给某一个变量.so,先来看一下闭包函数. 闭包函数 php文档: ...

  3. 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

    [源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...

  4. 【Cocos2d-X开发学习笔记】第18期:动作类之改变动作对象、函数回调动作以及过程动作的使用

    本系列学习教程使用的是cocos2d-x-2.1.4(最新版为3.0alpha0-pre) ,PC开发环境Windows7,C++开发环境VS2010 一.改变动作执行对象 CCTargetedAct ...

  5. iScroll屏幕滑动函数封装总结

    //iScroll.js屏幕滚动函数 function funScroll(a,b) { var d; function beforload() { d = new iScroll(a, { chec ...

  6. js jquery 函数回调

    JS 函数回调 $('#btn_update').click(function () { var table_id = $table.bootstrapTable('getSelections')[0 ...

  7. VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数)

    上一节中鸡啄米讲了文本输出的知识,本节的主要内容是CDC类及其屏幕绘图函数. CDC类简介 CDC类是一个设备上下文类. CDC类提供了用来处理显示器或打印机等设备上下文的成员函数,还有处理与窗口客户 ...

  8. python全栈开发_day15_函数回调和模块

    一:函数回调 def a(fn=None): print("run1") if fn: fn() print("run 2") def b(): print(& ...

  9. VS2010-MFC(图形图像:CDC类及其屏幕绘图函数)

    转自:http://www.jizhuomi.com/software/244.html 上一节讲了文本输出的知识,本节的主要内容是CDC类及其屏幕绘图函数. CDC类简介 CDC类是一个设备上下文类 ...

随机推荐

  1. Redis封装值ZSet

    /// <summary> /// Sorted Sets是将 Set 中的元素增加了一个权重参数 score,使得集合中的元素能够按 score 进行有序排列 /// 1.带有权重的元素 ...

  2. Cisco交换机解决网络蠕虫病毒入侵问题

    Cisco交换机解决网络蠕虫病毒入侵问题          今年来网络蠕虫泛滥给ISP和企业都造成了巨大损失,截至目前已发现近百万种病毒及木马.受感染的网络基础设施遭到破坏,以Sql Slammer为 ...

  3. Firefox 浏览器有用的插件

    1.Undo Closed Tabs Button或Undo Closed Tabs Button (revived) 恢复关闭的标签页 2.NetVideohunter Video Download ...

  4. selenium与phantomjs简单结合

    selenium工具安装 Windows安装pip install selenium Linux安装apt-get install selenium 查看selenium支持的浏览器from sele ...

  5. shell中IF的用法介绍

    一.语法结构 if [ condition ] then      statements  [elif condition      then statements. ..]  [else       ...

  6. Linux下yum安装ffmpeg和使用

    本文属于转载文章:转载地址是http://www.cnblogs.com/dennisit/archive/2012/12/27/2835089.html 使用Yum安装ffmpeg 打开 vi /e ...

  7. windows下plsql 设置 里面timestamp显示的格式

    http://blog.csdn.net/cwjcsu/article/details/9216981

  8. 洛谷 P1732 [TJOI2011]序列

    P1732 [TJOI2011]序列 题目描述 一指数列A={a1, a2, …, an},根据数列A计算数列B={b1, b2, …, bn},其中: 求\sum\limits^n_{i=1} b_ ...

  9. [Python] Execute a Python Script

    Python scripts can be executed by passing the script name to the python command or created as execut ...

  10. 云计算时代告别phpMyAdmin

    云计算时代告别phpMyAdmin phpMyAdmin是一款很经典的MySQL数据库管理工具,在云计算快速发展的今天,phpMyAdmin交互老旧.已经不能适应时代步伐.因此有很多人開始选择一些更高 ...