第三方Activity报错"Only fullscreen opaque activities can request orientation

第三方Activity报错"Only fullscreen opaque activities can request orientation"

最近收到谷歌通知,需要将targetSDKVersion升级到28,在升级到28之后报如上错误,简单说就是只有全屏不透明activity才能固定页面方向,具体对这个报错的分析我就不多说了,大家可以参考这篇博客Only fullscreen activities can request orientation终极解决方法
根据日志我找出出错的Activity,发现其中有部分是我自己项目定义的,这一部分基本通过修改配置文件都好解决,但同时出现了一部分第三方SDK中的Activity。
我的项目中是用到AliPayHK,提示其中的PayResultActivity报这个错,但是官方提供的DEMO在8.0的机器上又没问题,所以肯定是我使用方式有问题。
**报错原因:**研究发现第三方的screenOrientation都设置成了behind,behind意味着该Activity的方向继承Activity栈中上一个Activity的方向,而我上一个Activity的确是固定了方向的,所以才会导致报错
**解决:**不能简单的将前一个Activity方向设置成非固定的,因为产品要求必须是固定方向的。基本思路是当判断当前系统是Android8.0的时候在要跳转到PayResultActivity之前将当前页面方向设置成fullsensor,在第三方回调之后再将当前页面方向设置成固定方向的即可.
currentActivity.setRequestOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
currentActivity.setRequestOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

网上搜到的关于这个报错的解决方案基本都是针对自己定义的Activity的,很少有针对第三方Activity的,把我的填坑记录在此希望对大家有帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值