1.原因:
在解决页面跳转时黑屏或者白屏时添加了true, 然后这个时候又设置了页面的方向,从而导致了这个问题。
源码分析问题: 在26的编译版本时是可以正常的使用的,但是当把编译版本升级到27时,就会出现"Only fullscreen activities can request orientation"异常。对源码的分析,得出这是google出于安全的考虑,对android8.0以后的版本做的处理,当一个Activity固定方向并且是透明的,在8.0以后的版本中就会抛出异常
Entry ent = AttributeCache.instance().get(packageName,realTheme, com.android.internal.R.styleable.Window, userId);
final boolean translucent = ent != null && (ent.array.getBoolean(com.android.internal.R.styleable.Window_windowIsTranslucent, false)|| (!ent.array.hasValue(
com.android.internal.R.styleable.Window_windowIsTranslucent) && ent.array.getBoolean(com.android.internal.R.styleable.Window_windowSwipeToDismiss,false)));
fullscreen = ent != null && !ent.array.getBoolean(com.android.internal.R.styleable.Window_windowIsFloating, false) && !translucent;
fullscreen = ent != null && !ActivityInfo.isTranslucentOrFloating(ent.array);
noDisplay = ent

本文分析了Android应用在页面跳转时遇到的'Only fullscreen activities can request orientation'异常,该异常在Android 8.0及以上版本出现,原因是全屏和方向请求的限制。解决方案包括不固定Activity方向、修改AppTheme样式以设置windowIsTranslucent为false和windowDisablePreview为true。此外,还探讨了应用启动时可能出现的黑屏或白屏问题,提出设置windowBackground或使用windowIsTranslucent属性来避免此类问题。

3357

被折叠的 条评论
为什么被折叠?



