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

2024-05-31 03:48

本文主要是介绍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.修改广告页的实现方案

这篇关于Activity横竖屏切换时先看到横屏/竖屏再变换回竖屏/横屏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1017344

相关文章

OSG数学基础:坐标系变换

三维实体对象需要经过一系列的坐标变换才能正确、真实地显示在屏幕上。在一个场景中,当读者对场景中的物体进行各种变换及相关操作时,坐标系变换是非常频繁的。坐标系变换通常包括:世界坐标系-物体坐标系变换、物体坐标系-世界坐标系变换和世界坐标系-屏幕坐标系变换(一个二维平面坐标系,即显示器平面,是非常标准的笛卡尔坐标系的第一象限区域)。 世界坐标系-物体坐标系变换 它描述的问题主要是关于物体本身的

redis切换数据库的方法【jedis】

package com.test;import redis.clients.jedis.Jedis;public class readredis {public static void main(String[] args) {// 连接本地的 Redis 服务Jedis jedis = new Jedis("127.0.0.1", 6379);jedis.select(10);String v

切换国内yum源

切换国内yum源 一、备份现有YUM源二、下载新的YUM源配置文件三、先清理YUM缓存再生成四、测试新的YUM源五、重启系统服务(生效可以不重启)可选 首先,切换国内YUM源的具体步骤取决于您使用的Linux发行版和当前的YUM源配置。以下是一般步骤,适用于大多数基于Red Hat的发行版,如CentOS和Fedora: 一、备份现有YUM源 在修改YUM源之前,建议先备份现

滴滴插件化框架VirtualAPK原理解析(一)之插件Activity管理

上周末,滴滴与360都开源了各自的插件化框架,VirtualAPK与RePlugin,作为一个插件化方面的狂热研究者,在周末就迫不及待的下载了Virtualapk框架来进行研究,本篇博客带来的是VirtualAPK原理解析的第一篇Activity管理,博客只是自己的理解,小弟才疏学浅,可能有很多理解不对的地方,欢迎各位大神指出。(看博客之前,请大家先下载VirtualVirtualAPKapk的项

【pytorch06】 维度变换

常用API view/reshapesqueeze/unsqueezetranspose/t/permuteexpand/repeat view和reshape view操作的基本前提是保证numel()一致 a.view(4,28*28)的物理意义是把行宽以及通道合并在一起,对于4张图片,我们直接把所有数据都合在一起,用一个784维的向量来表示,这样所有的二维信息上下左右位置信息就忽略

双jdk切换

现在因为业务需求单一jdk8已经不满足日常需求了,以我为例之前用的jdk8,但是最新的一个项目用的是17版本的,没招了就下载配置的一套,需要手动切换用哪个版本的步骤如下 jdk8就自己安装配置吧,这只说在有8的版本上在配置17 1.下载一个17win的包(不下载exe) Java Downloads | Oracle 中国 2.解压到自己需要的位置  我的 D:\JDK\jdk-17

Selenium Webdriver处理iFrame之间的切换问题

原文转自:https://blog.csdn.net/dongtianlaile/article/details/9854263 对于使用的iFrame技术的website, 使用xPath无法直接定位到元素,需要先切换到相应的frame再进行定位: [java]  view plain copy WebElement frame=driver.findElement(By.

LLVM——安装多版本LLVM和Clang并切换使用(Ubuntu)

1、描述 本机(Ubuntu22)已经安装了LLVM-14,但是需要使用LLVM-12。安装LLVM-12和Clang-12并切换使用。 2、过程 安装LLVM-12和Clang-12。 sudo apt-get install llvm-12sudo apt-get install clang-12 【注】运行 sudo apt-get install llvm-12 命令时,默认情况

微型操作系统内核源码详解系列五(五):cm3下Pendsv切换任务上篇

系列一:微型操作系统内核源码详解系列一:rtos内核源码概论篇(以freertos为例)-CSDN博客 系列二:微型操作系统内核源码详解系列二:数据结构和对象篇(以freertos为例)-CSDN博客 系列三:微型操作系统内核源码详解系列三(0):空间存储及内存管理篇(前置篇)-CSDN博客                 微型操作系统内核源码详解系列三(1):任务及切换篇(任务函数定义)-

【Android面试八股文】来说一说Activity,Window,View三者的联系和区别吧

文章目录 ActivityWindowView为什么需要 Window?Window和View的关系Activity与Window的关系示例流程图示总结扩展阅读 在Android应用程序开发中, Activity、Window 和 View 是构建用户界面的核心组件。它们之间有着紧密的联系,但角色和职责各不相同。下面是对它们联系和区别的详细解释: Ac