为什么Android会在屏幕旋转时重新启动活动?

时间:2016-05-20 16:50:55

标签: android android-activity orientation

在我开发的所有应用程序中,我一直在使用

android:configChanges="keyboardHidden|orientation|screenSize"

强制停止Android在旋转屏幕时重新启动活动。但是最近我在一些SO中看到了诸如此one之类的答案。我想知道为什么这是一个糟糕的方法以及为什么Android在屏幕旋转时坚持重新启动活动。

谢谢。

4 个答案:

答案 0 :(得分:1)

答案在您发布的链接

中的一个链接中

https://developer.android.com/reference/android/app/Activity.html#ConfigurationChanges

  

这是因为任何应用程序资源,包括布局文件,   可以根据任何配置值进行更改。因此,唯一安全的方法   处理配置更改是重新检索所有资源,   包括布局,drawable和字符串。因为活动必须   已经知道如何保存自己的状态并重新创建自己   该状态,这是重新启动活动的便捷方式   本身有一个新的配置。

答案 1 :(得分:0)

我明白其中一个原因是允许机会加载特定于横向的布局

答案 2 :(得分:0)

根据the documentation

  

重新启动行为旨在通过使用与新设备配置匹配的备用资源自动重新加载应用程序,帮助您的应用程序适应新配置。

所以主要的想法是决定一个活动将使用哪个布局文件在创建时刻。

答案 3 :(得分:0)

我会说如果配置更改之间没有任何变化,可以使用(android:configChanges =" keyboardHidden | orientation | screenSize"),这样我们告诉系统,我们以我们的方式处理这个问题(或者我们不需要改变任何事情)。 此外,如果您使用配置更改标记,则不会在代码或UI中更改与其相关的任何内容。

所以可以使用配置更改