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.