Android应用横竖屏切换的两种方式,从表现上看最大的区别

转载请注明:博客未命名

我们知道android应用更改屏幕方向有两种方式,对应两种过程,一是销毁重建,二是设置onConfigurationChanged。在其中做改变方向的处理。

很久前我们的测试同学给计算器应用报了一个bug,说应用旋转到横屏后锁屏,再解锁。此时应用会先回到竖屏,再转换到横屏(图一)。正确的表现应该和浏览器的表现一样(图二),解锁后直接进入横屏。

图一,表现错误,使用销毁重建的方式

图二,表现正确,使用onConfigurationChanged

百思不得其解。

后来解一个性能相关的bug,很巧地把原来销毁重建的方式,改成了onConfigurationChanged处理。无意间解了这个搁置很久的问题。

根据systrace的结果,推测可能的原因如下。

  1. 销毁重建,其间会进行目标activity的销毁、重建以及其它系统调用。这一系列动作不能在一帧内完成,导致解锁时能看到竖屏切换到横屏的动作。

  2. onConfigurationChanged,横竖屏切换其间只执行这一个函数,其中只有layout的MLD操作,这一系列动作在短时间内完成,因此我们看到的也就直接进入和横屏。

  3. 可能有其它activity管理之间的原因,暂不清楚。知道的请不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值