gpt4 book ai didi

android - 如何判断 Activity 已经被通知区域覆盖?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:54:38 24 4
gpt4 key购买 nike

通常,Android 会在您的 Activity 开始被遮挡或隐藏时调用 onPause,然后在它不再显示时调用 onStop .在我的游戏中,我在 onPause 中暂停了游戏,因此用户不会在看别处时输掉游戏。

但是,当用户向下拖动通知栏时,它覆盖了我的Activity,但是onPauseonStop都没有被调用。文档中似乎没有提到这一点。游戏在后台滴答作响,没有人在看。发生这种情况时,是否有其他方式告诉我的 Activity 已被遮挡,以便我可以在用户输之前暂停游戏?我在 Android 开发者网站上找不到任何相关信息。

最佳答案

ActivityonWindowFocusChanged(boolean hasFocus) 应该满足所需的目的。当通知区域被向下拖动时调用 false,当通知区域被向上拖动时调用 true。对应的Android documentation声明此方法“是此 Activity 是否对用户可见的最佳指示器”。它还明确指出当显示“状态栏通知面板”时会触发回调。

需要注意的是,这个方法在其他情况下也会被调用。一个很好的例子是 AlertDialog 的显示。 onWindowFocusChanged 甚至在 Activity 本身显示 AlertDialog 时调用。这可能需要考虑,具体取决于您的游戏是否使用 AlertDialogs 或其他导致焦点改变的东西。

在与这个问题中描述的场景类似的场景中,我们成功地使用了 onWindowFocusChanged 方法,例如在装有 Android 4.4 的 Nexus 5 或装有 Android 4.1 的 Sony Xperia 平板电脑上。

关于android - 如何判断 Activity 已经被通知区域覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12689497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com