如何使用onWindowFocusChanged()方法?

时间:2011-10-28 01:38:33

标签: android

我对如何在活动发生变化时触发事件感到困惑。我知道的一件事是使用onWindowFocusChanged()方法,但我不知道如何使用它。请帮助一个例子,即当活动发生变化时,它应该显示一个吐司说“活动已更改”。

4 个答案:

答案 0 :(得分:29)

当窗口焦点发生变化时,将调用以下方法。例如,如果窗口增益/损失集中,它将被触发。如果窗口获得焦点,hasFocus为真,否则为假。

 public void onWindowFocusChanged(boolean hasFocus) {         
            super.onWindowFocusChanged(hasFocus);
            if(hasFocus) 
                Toast.makeText(context, text, duration).show();
    }

答案 1 :(得分:2)

id

这可能会有所帮助......

答案 2 :(得分:0)

当活动的当前窗口获得或失去焦点时调用。这是该活动是否对用户可见的最佳指标。默认实现清除密钥跟踪状态,因此应始终调用。

@Override
public void onWindowFocusChanged(boolean hasFocas) {
    super.onWindowFocusChanged(hasFocas);
    //your code here
}

hasFocus boolean:此活动的窗口是否具有焦点。

答案 3 :(得分:0)

Android 10 限制了应用访问剪贴板。现在,只有当前具有焦点的应用才能访问剪贴板。

以前,您可能会在 onResume 中访问这些数据,但在 Android 10 上这不起作用。相反,您可以使用 onWindowFocusChangedcallback 等待视图布局完毕。