語言

Activity.OnWindowFocusChanged(Boolean) 方法

定義

當活動的節奏 Window 變得集中或失去焦點時,會被叫做。

[Android.Runtime.Register("onWindowFocusChanged", "(Z)V", "GetOnWindowFocusChanged_ZHandler")]
public virtual void OnWindowFocusChanged(bool hasFocus);
[<Android.Runtime.Register("onWindowFocusChanged", "(Z)V", "GetOnWindowFocusChanged_ZHandler")>]
abstract member OnWindowFocusChanged : bool -> unit
override this.OnWindowFocusChanged : bool -> unit

參數

hasFocus
Boolean

這個活動的窗口是否有焦點。

實作

屬性

備註

當活動的當前窗口聚焦或失去焦點時,會被呼喚。 這是判斷該活動是否為使用者積極互動實體的最佳指標。 預設實作會清除金鑰追蹤狀態,因此應該總是被呼叫。 請注意,這提供了關於全域焦點狀態的資訊,該狀態是獨立於活動生命週期管理的。 因此,雖然焦點變更通常會與生命週期變更有關(停止的活動通常不會獲得視窗焦點),但你不應該依賴這裡的回調與其他生命週期方法(如 onResume() 中的回調之間有特定順序)。 不過一般來說,前景活動會使用窗戶焦點......除非它顯示了其他對話框或彈出視窗,需要輸入焦點,否則活動本身不會有焦點,而其他視窗則沒有焦點。 同樣地,系統可能會顯示系統層級視窗(例如狀態列通知面板或系統警示),暫時取代視窗輸入焦點,但不會暫停前景活動。 從Build.VERSION_CODES開始。問:在多視窗模式下可以同時有多個恢復的活動,因此即使沒有上方覆蓋層,恢復狀態也不保證視窗會聚焦。 如果目的是知道某個活動何時是最活躍的,也就是使用者在所有活動中最後互動的那個,但不包括對話框和彈出視窗等非活動視窗,那麼應該使用 onTopResumedActivityChanged(布林值)。 Build.VERSION_CODES 之前的平台版本。問:onResume() 是最好的指標。

另請參閱:

Android 參考資料。android.app.Activity.onWindowFocusChanged

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於