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).

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.

Применяется к

См. также раздел