Activity横竖屏切换时先看到横屏/竖屏再变换回竖屏/横屏

栏目: IOS · Android · 发布时间: 7年前

内容简介:因为公司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.修改广告页的实现方案


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言点滴

C语言点滴

赵岩 / 人民邮电出版社 / 2013-10-1 / 45.00元

C语言兼具高级语言和汇编语言的特点,学习起来难度较大,令不少初学者望而生畏。同时,C语言又是一门应用非常广泛的编程语言,在实际应用中如何根据不同的应用场景高效地使用C语言,也是大家非常感兴趣的话题。  《C语言点滴》精心选取C语言一些必备知识,这也是初学者容易搞不清楚、犯错误的知识点,进行深入地分析和介绍,以期帮助读者清除C语言学习之路上的“绊脚石”,降低初学入门的难度,培养继续深入的兴趣。  全......一起来看看 《C语言点滴》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换