【发布时间】:2015-01-29 18:38:42
【问题描述】:
我一直想知道销毁轮换活动有什么好处?我的意思是你可以
指定android:configChanges="orientation|screenSize"它不会被破坏
但是销毁它的原因是什么
【问题讨论】:
-
@Emmanuel 每个 Android 开发人员都应该阅读该线程。我们多久将
android:configChanges="orientation视为“解决方案”?
我一直想知道销毁轮换活动有什么好处?我的意思是你可以
指定android:configChanges="orientation|screenSize"它不会被破坏
但是销毁它的原因是什么
【问题讨论】:
android:configChanges="orientation 视为“解决方案”?
因为通常情况下,当我们为竖屏模式构建屏幕并且屏幕旋转时,UI 会变得一团糟,所以 android os 认为我们可能需要重构我们的布局,或者在 onOrientationChanged 期间使用新的布局,也许这就是再次创建活动的原因
【讨论】:
android:configChanges="orientation" in activity 清单内的元素可以解决问题。
android:configChanges="orientation" 这是一个黑客,也是一个危险的黑客。我认为这是 Android 应用程序中一半错误的原因。为什么,因为您不必费心正确编码生命周期,并且由于其他原因之一(例如键盘更改,来电,区域设置更改等)而破坏了您的活动。谷歌对此非常清楚。仅将其用作最后的手段,并且仅在您真正知道自己在做什么的情况下使用。请勿使用此 hack。
每次用户旋转屏幕时,您的活动都会被销毁并重新创建。当屏幕改变方向时,系统会销毁并重新创建前台 Activity,因为屏幕配置已更改,并且您的 Activity 可能需要加载替代资源(例如布局)
在数学上,纵横比也会发生变化——所有这些都构成了操作系统重新创建活动以了解如何工作——(这可能不是 100% 正确——但正确)..
【讨论】: