【问题标题】:Why the android activity get's destroyed on rotation?为什么android活动在旋转时被破坏?
【发布时间】:2015-01-29 18:38:42
【问题描述】:

我一直想知道销毁轮换活动有什么好处?我的意思是你可以 指定android:configChanges="orientation|screenSize"它不会被破坏 但是销毁它的原因是什么

【问题讨论】:

标签: android rotation destroy


【解决方案1】:

因为通常情况下,当我们为竖屏模式构建屏幕并且屏幕旋转时,UI 会变得一团糟,所以 android os 认为我们可能需要重构我们的布局,或者在 onOrientationChanged 期间使用新的布局,也许这就是再次创建活动的原因

【讨论】:

  • 如果在我的情况下,纵向和横向都有相同的 xml,强制它不破坏它是错误的吗?除了你提到的原因,还有其他原因吗?
  • 我不认为有办法阻止娱乐。
  • @KristyWelsh android:configChanges="orientation" in activity 清单内的元素可以解决问题。
  • @user3364192 我只是分享了我的观点,也许有更深层次的原因,或者可能只是谷歌有两个选择(销毁或不销毁),他们选择了前者: )
  • @aga android:configChanges="orientation" 这是一个黑客,也是一个危险的黑客。我认为这是 Android 应用程序中一半错误的原因。为什么,因为您不必费心正确编码生命周期,并且由于其他原因之一(例如键盘更改,来电,区域设置更改等)而破坏了您的活动。谷歌对此非常清楚。仅将其用作最后的手段,并且仅在您真正知道自己在做什么的情况下使用。请勿使用此 hack。
【解决方案2】:

每次用户旋转屏幕时,您的活动都会被销毁并重新创建。当屏幕改变方向时,系统会销毁并重新创建前台 Activity,因为屏幕配置已更改,并且您的 Activity 可能需要加载替代资源(例如布局)

在数学上,纵横比也会发生变化——所有这些都构成了操作系统重新创建活动以了解如何工作——(这可能不是 100% 正确——但正确)..

【讨论】:

    最近更新 更多