为什么android活动会得到';它在轮换中被摧毁了?

为什么android活动会得到';它在轮换中被摧毁了?,android,rotation,destroy,Android,Rotation,Destroy,我一直想知道在轮换时破坏活动有什么好处?我是说你可以 指定android:configChanges=“orientation | screenSize”,它就不会被破坏 但是破坏它的原因是什么呢?因为通常当我们为纵向模式(比如)构建屏幕时,UI会变得一团糟,并且屏幕会旋转,所以android操作系统认为我们可能需要重构布局,或者在onOrientationChanged期间使用新的布局,也许这就是再次创建活动的原因每次用户旋转屏幕时,您的活动都将被销毁并重新创建。当屏幕更改方向时,系统将销毁并

我一直想知道在轮换时破坏活动有什么好处?我是说你可以 指定android:configChanges=“orientation | screenSize”,它就不会被破坏
但是破坏它的原因是什么呢?因为通常当我们为纵向模式(比如)构建屏幕时,UI会变得一团糟,并且屏幕会旋转,所以android操作系统认为我们可能需要重构布局,或者在onOrientationChanged期间使用新的布局,也许这就是再次创建活动的原因

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


此外,从数学上讲,纵横比也会发生变化-所有这些都构成了操作系统重新创建活动以了解如何工作的过程-(这可能不是100%正确-而是正确)

每个Android开发人员都需要阅读的@Emmanuel线程的可能副本。我们多久会将android:configChanges=“orientation视为一种“解决方案”?如果在我的例子中,纵向和横向都有相同的xml,那么强迫它不破坏它是错误的吗?除了你提到的原因之外,还有什么原因吗?我认为没有办法阻止这种再创造。@KristyWelsh
android:configChanges=”方向“
在清单中的
活动中
元素起作用。@user3364192我刚刚分享了我的观点,可能有更深层的原因,或者可能只是谷歌有两个选项(销毁或不销毁),他们使用了前者:)@aga
android:configChanges=“方向“
这是一次黑客攻击,也是一次危险的攻击。我认为这是Android应用程序中一半错误的原因。为什么呢?因为你不必费心去正确地编写生命周期代码,你的活动也会因为键盘改变、来电、语言环境改变等其他原因而被破坏。谷歌对此非常清楚。只有当你真的知道自己在做什么的时候,才能把它作为最后的手段。不要使用这个黑客。