mark-onWindowFocusChanged重要之处
来源:互联网 发布:数据存储 编辑:程序博客网 时间:2024/05/09 16:46
onWindowFocusChanged重要作用
Activity生命周期中,onStart, onResume, onCreate都不是真正visible的时间点,真正的visible时间点是onWindowFocusChanged()函数被执行时。
(ps:只有该方法真正执行的时候,activity才算真正的绘制完成或者是完全隐藏点,在该方法中用代码就算view长宽最合适)
译注:从onWindowFocusChanged被执行起,用户可以与应用进行交互了,而这之前,对用户的操作需要做一点限制。
比如我们在做OTT项目时候,我们就是在这onWindowFocusChanged来获取主按键的具体位置和宽高的,而在其他标准生命周期的接口中调用都是获取不到的,比如在onResume,onStart中都获取不到信息。
这个onWindowFocusChanged指的是这个Activity得到或者失去焦点的时候 就会call。。
也就是说 如果你想要做一个Activity一加载完毕,就触发什么的话 完全可以用这个!!!
使用一个view的getWidth() getHeight() 方法来获取该view的宽和高,返回的值却为0。
如果这个view的长宽很确定不为0的话,那很可能是你过早的调用这些方法,也就是说在这个view被加入到rootview之前你就调用了这些方法,返回的值自然为0.
解决该问题的方法有很多,主要就是延后调用这些方法。可以试着在onWindowFocusChanged()里面调用这些方法,验证时可以获取到View的宽高的。
相关执行打印:
1: entry: onStart---->onResume---->onAttachedToWindow----------->onWindowVisibilityChanged--visibility=0---------->onWindowFocusChanged(true)------->
2. exit: onPause---->onStop---->onWindowFocusChanged(false) ---------------------- (lockscreen)
3. exit : onPause----->onWindowFocusChanged(false)-------->onWindowVisibilityChanged--visibility=8------------>onStop(to another activity)
- mark-onWindowFocusChanged重要之处
- Android之onWindowFocusChanged
- onWindowFocusChanged
- onWindowFocusChanged
- onWindowFocusChanged
- onWindowFocusChanged
- onWindowFocusChanged?
- onWindowFocusChanged
- onWindowFocusChanged
- Activity的生命周期之onWindowFocusChanged()
- 重要BPR——mark
- 今天是个重要日子, mark一下
- mark 黑客之道
- Objective-C之Mark
- Swift之mark 注释
- Mark: uboot , linux 等一些重要的FTP
- mark 比写程序更重要的事情
- onWindowFocusChanged重要作用
- Android按两次返回键退出程序和长按返回键退出程序
- oracle口令失效
- c++运行时类型识别(rtti)
- Pricing Control - 价格控制
- WinsockPragramming(2) Client(C++版)
- mark-onWindowFocusChanged重要之处
- .net如何在后台将某一变量的值传值给前台js
- 用JS获取地址栏参数的方法(超级简单)
- 事业!
- oracle11g无法导出空表解决方案
- 设置MyEclipse的代码自动提示功能
- Android-51CTO-博客 雨松MOMO的程序世界
- mysql的sql语句根据经纬度查询距离排序
- Structured Articles - 结构商品