Activity.OnWindowFocusChanged(Boolean) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当活动的当前 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 文档。
此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。