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が最適なインジケーターです。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

こちらもご覧ください