检查 activity 是否可见(在 Resume Pause 上不适合,因为多窗口模式)

Check if activity is visible (onResume&Pause dosen't suit, because of multiwindow mode)

我需要以某种方式确保 activity 在屏幕上对用户可见。

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

但是onPause不仅会在你最小化你的activity时被调用,onPause也会在你在multiwindow模式下切换到其他window时被调用(Android 7.x牛轧糖)

所以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 方法将执行一些操作。

我发现这个关于你的问题的有趣 link:Multiwindow