我需要以某种方式确保屏幕上的 Activity 对用户可见。
我们可以通过监听 Activity 类中的 onResume 和 onPause 事件并在这些函数中设置一些 boolean 值来做到这一点。
但是 onPause 不仅在你最小化你的 Activity 时被调用,当你在多窗口模式下切换到其他窗口时也会调用 onPause (Android 7.x Nougat)
所以boolean onPause&onResume方法会导致错误。
那怎么知道Activity的可见性呢?
感谢您的帮助。
最佳答案
在 Nougat
及以上你必须检查 onStop
方法,当你的 Activity
不可见时它会告诉你,你可以使用这个代码:
@Override
public void onPause() {
super.onPause();
if (Build.VERSION..SDK_INT <= 23) {
//your activity is not visible
onHidden();
}
}
@Override
public void onStop() {
super.onStop();
if (Build.VERSION..SDK_INT > 23) {
//your activity is not visible
onHidden();
}
}
假设您的onHidden
方法将执行一些操作。
我发现了这个关于您的问题的有趣链接:Multiwindow
关于java - 检查 Activity 是否可见(onResume Pause 不适合,因为多窗口模式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47609869/