内容简介:因为公司APP上的一个Bug遇到一个问题,跟了下这个问题,稍微记录一下。需求:当App从后台回到前台的时候,要弹出一个广告页Activity A ,而广告页希望是竖屏显示的,这样才符合引人入胜的效果咯。开发的实现:做这个需求,之前开发的实现是,在Application中注册Application.ActivityLifecycleCallbacks来监听Activity的变化情况,根据Activity的变化情况来判断是否从后台变化到前台。一些逻辑性的判断这边不写了,我们就看问题的代码部分伪代码
因为公司APP上的一个Bug遇到一个问题,跟了下这个问题,稍微记录一下。
需求:当App从后台回到前台的时候,要弹出一个广告页Activity A ,而广告页希望是竖屏显示的,这样才符合引人入胜的效果咯。
开发的实现:做这个需求,之前开发的实现是,在Application中注册Application.ActivityLifecycleCallbacks来监听Activity的变化情况,根据Activity的变化情况来判断是否从后台变化到前台。一些逻辑性的判断这边不写了,我们就看问题的代码部分伪代码
问题发生点:
当一个Activity B(横屏)成功地退到后台,后面再进入APP时,
onActivityResumed 回调中,已经做好判断,认为从后台跑到前台了,紧接着通过EventBus发送事件去打开Activity A(广告页,竖屏)
我们会看到广告页先显示成了横屏(和Activity B一致),再变换成竖屏(自己的属性)
问题猜测:Android系统底层在这边发生了什么转换,导致了显示的异常。(暂不知)
那解决的方案:
1.退一步,top activity是横屏的话,不弹出广告页(我想找一个APP是横屏下,弹出广告页的,都没找到,猜想是否都不会这样设计)
2.延迟250ms左右startActivity (时间不容易确定,我觉得跟Activity B的显示有关系),但是这种方案的弊端在于会看到一眼Activity B
3.在退出横屏Activity B到后台的时候,将它切换成竖屏
4.修改广告页的实现方案
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- WebGL 入门与实践 --- 坐标系变换 :基本变换原理与算法实现
- 图像变换函数
- foldl 和 foldr 的变换
- OpenGL 使用矩阵变换改变视图
- 详解 Winograd 变换矩阵生成原理
- css3 | 浅谈transform变换
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。