Activity 中的屏幕截图覆盖未调用 onPause()

Screenshot overlay not calling onPause() in Activity

我试图在用户截取屏幕截图时在我的应用程序中显示一个对话框。我已经在 onResume 中添加了一些带有标志的代码,如果用户使用屏幕截图执行某些操作然后返回到应用程序(即共享屏幕截图图像),则该代码可以正常工作。

但是,如果用户截取屏幕截图并显示带有某些选项(通常是共享、编辑、删除)的叠加层几秒钟,然后如果不采取任何操作则消失,那么 activity 永远不会被调用。知道如何检测我的 activity 上显示的屏幕截图覆盖吗?

我通过向 activity 添加一个用于焦点更改的侦听器来修复它:

 @Override
 public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if(hasFocus && hasScreenshotBeenDetected && !showingScreenshotAlert) {
        showScreenShotDialog();
    }
}