1

我需要以某种方式确保活动在用户眼睛可见的屏幕上。

我们可以通过监听 Activity 类中的 onResume 和 onPause 事件并在这些函数中设置一些布尔值来做到这一点。

但是 onPause 不仅在您最小化活动时调用,当您在多窗口模式下切换到其他窗口时也会调用 onPause (Android 7.x Nougat)

所以 boolean onPause&onResume 方法会导致错误。

那么如何知道Activity的可见性呢?

感谢帮助。

4

1 回答 1

2

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

于 2017-12-02T16:22:40.497 回答