我需要以某种方式确保活动在用户眼睛可见的屏幕上。
我们可以通过监听 Activity 类中的 onResume 和 onPause 事件并在这些函数中设置一些布尔值来做到这一点。
但是 onPause 不仅在您最小化活动时调用,当您在多窗口模式下切换到其他窗口时也会调用 onPause (Android 7.x Nougat)
所以 boolean onPause&onResume 方法会导致错误。
那么如何知道Activity的可见性呢?
感谢帮助。
我需要以某种方式确保活动在用户眼睛可见的屏幕上。
我们可以通过监听 Activity 类中的 onResume 和 onPause 事件并在这些函数中设置一些布尔值来做到这一点。
但是 onPause 不仅在您最小化活动时调用,当您在多窗口模式下切换到其他窗口时也会调用 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