如何检测安卓N设备进入多窗口模式

6
我希望我的后台服务能在用户切换到多窗口模式时收到通知。除了涉及该过程的活动之外,是否有其他服务可以获取此信息?
另外,我注意到当在前台窗口区域点击覆盖层时,它会自动切换到该区域下的活动。这个行为可以被防止吗?
2个回答

4

您需要添加 ViewTreeObserver 并检查设备是否进入了多窗口模式

getActivity().isInMultiWindowMode()


1

isInMultiWindowMode() 是在 API 24 中添加的,用于检查设备是否处于多窗口模式,它返回一个布尔值。每当设备进入多窗口模式时,它会触发 onConfigurationChanged() 方法。在那里,您可以处理横屏和竖屏模式。

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
     if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
      {
        //do something
      }else{

      }
}

2
有没有类似于 isInMultiWindowMode 的 API,可以在 Activity 之外调用? - android developer
如果是在 Fragment 中,可以通过 getActivity().isInMultiWindowMode() 访问;否则,需要将上下文传递给非活动类来访问。 - anand krish
一个 Fragment 在一个 Activity 内部。当它没有附加到 Activity 时,它不能使用它... 我询问的是在 Activity 外部的情况... - android developer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接