【问题标题】:How to detect when device goes to multi-window mode of Android N如何检测设备何时进入 Android N 的多窗口模式
【发布时间】:2017-07-31 19:00:10
【问题描述】:

我想在用户切换到多窗口模式时从我的后台服务中获得通知。除了流程中涉及的活动之外,还有其他方法可以通过服务获取此信息吗?

我还注意到,当在前景窗口区域单击叠加层时,它会自动切换到该区域下的活动。可以预防吗?

【问题讨论】:

    标签: android service overlay android-7.0-nougat multi-window


    【解决方案1】:

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

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

    【讨论】:

    • 有没有类似isInMultiWindowMode的API,可以在Activity之外调用?
    • 如果是片段,您可以通过 getActivity().isInMultiWindowMode() 访问,否则通过将上下文传递给非活动类来访问
    • 一个片段在一个Activity里面。当它不附加到Activity时,它不能使用它......我询问了一个Activity之外......
    【解决方案2】:

    您必须添加 ViewTreeObserver。并检查设备是否进入多窗口模式 getActivity().isInMultiWindowMode()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      相关资源
      最近更新 更多