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

此活動的視窗是否具有焦點。

實作

屬性

備註

當活動的目前 Window 取得或失去焦點時呼叫。 這是此活動是否為使用者主動互動的實體的最佳指標。 預設實作會清除金鑰追蹤狀態,因此應該一律呼叫。

請注意,這會提供全域焦點狀態的相關資訊,這與活動生命週期無關。 因此,雖然焦點變更通常與生命週期變更有一些關聯, (停止的活動通常不會取得視窗焦點) ,但您不應該依賴此處回呼與其他生命週期方法中任何特定順序,例如 #onResume

不過,一般規則是前景活動會有視窗焦點...除非它已顯示其他接受輸入焦點的對話方塊或快顯視窗,在此情況下,活動本身在其他視窗擁有它時不會有焦點。 同樣地,系統可能會顯示系統層級視窗 (,例如狀態列通知面板或系統警示) ,這會暫時取得視窗輸入焦點,而不會暫停前景活動。

android.os.Build.VERSION_CODES#Q從 開始,在多視窗模式中可以同時有多個繼續的活動,因此即使上述沒有重迭,繼續狀態也不會保證視窗焦點。

如果意圖是知道活動是最上層作用中的活動,則應該使用使用者與所有活動互動的最後一個活動,但不包括對話方塊和快顯視窗等非使用中視窗。 #onTopResumedActivityChanged(boolean) 在 之前 android.os.Build.VERSION_CODES#Q 的平臺版本上, #onResume 是最佳指標。

android.app.Activity.onWindowFocusChanged(boolean) JAVA 檔。

此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據中所述的詞彙使用。

適用於

另請參閱