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.修改广告页的实现方案


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

查看所有标签

猜你喜欢:

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

现代操作系统(原书第4版)

现代操作系统(原书第4版)

[荷] Andrew S. Tanenbaum、[荷] Herbert Bos / 陈向群、马洪兵 等 / 机械工业出版社 / 2017-7 / 89.00

Andrew S. Tanenbaum教授编写的教材《现代操作系统》现在已经是第4版了。第4版在保持原有特色的基础上,又增添了许多新的内容,反映了当代操作系统的发展与动向,并不断地与时俱进。 对比第3版,第4版有很多变化。一些是教材中多处可见的细微变化,一些是就某一功能或机制增加了对最新技术的介绍,如增加了futex同步原语、读–复制–更新(Read-Copy-Update)机制以及6级RA......一起来看看 《现代操作系统(原书第4版)》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具