日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

onWindowFocusChanged重要作用(得到/失去焦点call) 、

發(fā)布時間:2025/7/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 onWindowFocusChanged重要作用(得到/失去焦点call) 、 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

onWindowFocusChanged重要作用

Activity生命周期中,onStart, onResume, onCreate都不是真正visible的時間點,真正的visible時間點是onWindowFocusChanged()函數(shù)被執(zhí)行時。
譯注:從onWindowFocusChanged被執(zhí)行起,用戶可以與應用進行交互了,而這之前,對用戶的操作需要做一點限制。

比如我們在做OTT項目時候,我們就是在這onWindowFocusChanged來獲取主按鍵的具體位置和寬高的,而在其他標準生命周期的接口中調(diào)用都是獲取不到的,比如在onResume,onStart中都獲取不到信息。

這個onWindowFocusChanged指的是這個Activity得到或者失去焦點的時候 就會call。。
也就是說 如果你想要做一個Activity一加載完畢,就觸發(fā)什么的話 完全可以用這個!!!

使用一個view的getWidth() getHeight() 方法來獲取該view的寬和高,返回的值卻為0。
如果這個view的長寬很確定不為0的話,那很可能是你過早的調(diào)用這些方法,也就是說在這個view被加入到rootview之前你就調(diào)用了這些方法,返回的值自然為0.
解決該問題的方法有很多,主要就是延后調(diào)用這些方法。可以試著在onWindowFocusChanged()里面調(diào)用這些方法,驗證時可以獲取到View的寬高的。


相關執(zhí)行打印:
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)

?

如何監(jiān)控一個Activity加載完畢(完成渲染)-onWindowFocusChanged我也不知道是不是專門用來監(jiān)控Activity的。但通過這個事件可以實現(xiàn)當一個Activity完全加載完畢后,然后就執(zhí)行。

1 @Override 2 public void onWindowFocusChanged(boolean hasFocus) { 3 // TODO Auto-generated method stub super.onWindowFocusChanged(hasFocus) 4 }

這個onWindowFocusChanged指的是這個Activity得到或者失去焦點的時候 就會call。。

?

也就是說 如果你想要做一個Activity一加載完畢,就觸發(fā)什么的話 完全可以用這個!!!

?

?

?

有人說可以利用Activity的生命周期。

?

onResume
當你的Activity成為屏幕前端Activity后onResume將被立刻調(diào)用。在這個時間點你的Activity處于運行狀態(tài)并且能與用戶進行交互。你可以接受鍵盤和觸摸輸入,并在屏幕上顯示你的用戶界面。當你的Activity失去屏幕前端焦點時onResume也會被調(diào)用,并且這個Activity最終退出,而另一Activity將被彈到前端。這也是你的Activity將開始(或恢復)的地方,并且可以做一些需要的事情比如更新用戶界面(例如:接收位置更新或者運行一個動畫)。

這==個。?

?

我試過。是無法實現(xiàn)里面控件加載完畢后,取得他們的狀態(tài)的!

?

?

android API :

?

void onWindowFocusChanged(boolean hasFocus)?
Called when the current Window of the activity gains or loses focus.

?

得到焦點是hasFocus == true 反之亦然!

API 才是王道!!!

轉載于:https://www.cnblogs.com/zl1991/p/5150270.html

《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的onWindowFocusChanged重要作用(得到/失去焦点call) 、的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。