我在检查设备是否支持多窗口模式时遇到问题。我正在使用此函数来检查它 isInMultiWindowMode()
但它已添加到 API 24 中,当我在具有较低 api 版本的设备上运行我的应用程序时,它会导致异常。对于较低的 api 版本,有什么替代函数吗?
最佳答案
There is any replacement for this function for lower api versions?
不在 Android SDK 中。 API Level 23 之前没有多窗口模式(从 Android SDK 的角度来看)。并且,无论出于何种原因,Google 选择不将 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 race condition 的影响。恕我直言,这使得它不可靠。
关于android - 检查多窗口支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41776549/