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 ドキュメント android.app.Activity.onWindowFocusChanged(boolean)

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

適用対象

こちらもご覧ください