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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

onWindowFocusChanged重要作用

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

比如我們?cè)谧鯫TT項(xiàng)目時(shí)候,我們就是在這onWindowFocusChanged來(lái)獲取主按鍵的具體位置和寬高的,而在其他標(biāo)準(zhǔn)生命周期的接口中調(diào)用都是獲取不到的,比如在onResume,onStart中都獲取不到信息。

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

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


相關(guān)執(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)控一個(gè)Activity加載完畢(完成渲染)-onWindowFocusChanged我也不知道是不是專(zhuān)門(mén)用來(lái)監(jiān)控Activity的。但通過(guò)這個(gè)事件可以實(shí)現(xiàn)當(dāng)一個(gè)Activity完全加載完畢后,然后就執(zhí)行。

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

這個(gè)onWindowFocusChanged指的是這個(gè)Activity得到或者失去焦點(diǎn)的時(shí)候 就會(huì)call。。

?

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

?

?

?

有人說(shuō)可以利用Activity的生命周期。

?

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

這==個(gè)。?

?

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

?

?

android API :

?

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

?

得到焦點(diǎn)是hasFocus == true 反之亦然!

API 才是王道!!!

轉(zhuǎn)載于:https://www.cnblogs.com/zl1991/p/5150270.html

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

總結(jié)

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

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