Only fullscreen opaque activities can request orientation

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

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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值