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


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

查看所有标签

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

Dreamweaver基础教程

Dreamweaver基础教程

李振华、季小武、季小武、李振华 / 清华大学 / 2005-6 / 23.00元

本书通过实例的方式介绍了Macromedia公司的Dreamweaver MX 2004的使用方法和技巧。 全书由14章组成,第1章和第2章介绍了软件的应用领域、知识结构、界面组成等;第3章到第12章是本书的重点部分,通过实例制作介绍了站点的建立,表格、文本及样式的创建,链接、图像、行为的使用,层、表单、框架的创建和使用以及动画、多媒体的制作等主要知识点;第13章和第14章介绍了插件技......一起来看看 《Dreamweaver基础教程》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器