Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 检查多窗口支持_Android_Android 7.0 Nougat_Multi Window - Fatal编程技术网

Android 检查多窗口支持

Android 检查多窗口支持,android,android-7.0-nougat,multi-window,Android,Android 7.0 Nougat,Multi Window,我在检查设备是否支持多窗口模式时遇到问题。我正在使用此函数检查它isInMultiWindowMode(),但它是在API 24中添加的,当我在API版本较低的设备上运行我的应用程序时,它会导致异常。对于较低的api版本,是否有此函数的替代品 对于较低的api版本,是否有此函数的替代品 不在Android SDK中。在API级别23之前,没有多窗口模式(从Android SDK的角度来看)。而且,无论出于何种原因,谷歌选择不将isInMultiWindowMode()添加到ActivityCom

我在检查设备是否支持多窗口模式时遇到问题。我正在使用此函数检查它
isInMultiWindowMode()
,但它是在API 24中添加的,当我在API版本较低的设备上运行我的应用程序时,它会导致异常。对于较低的api版本,是否有此函数的替代品

对于较低的api版本,是否有此函数的替代品

不在Android SDK中。在API级别23之前,没有多窗口模式(从Android SDK的角度来看)。而且,无论出于何种原因,谷歌选择不将
isInMultiWindowMode()
添加到
ActivityCompat
,可能是因为他们无法支持相应的事件(
onMultiWindowModeChanged()

因此,这里有一个免费的替换方法:

public static boolean isInMultiWindowMode(Activity a) {
  if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
    return false;
  }

  return a.isInMultiWindowMode();
}
公共静态布尔isInMultiWindowMode(活动a){

如果@commonware解释的(Build.VERSION.SDK_INT为真,则这是一个竞争条件。因此,
isInMultiWindowMode()
将给出实际结果,如果您从内部post方法调用它:

    View yourView = findViewById(R.id.yourViewId);
    yourView.post(new Runnable() {
        @Override
        public void run() {
            boolean actualResult = isInMultiWindowMode();
        }
    });

如果它在低级API中不存在,您如何检查它?Android N(API 24)中添加了多窗口支持和isInMultiWindowMode()