为什么onCreate方法在方向每次更改时运行

pan*_*age 0 android android-lifecycle

我需要停止Activity从去通过onCreate()一遍又一遍的方向改变时.

我在我的代码中添加了以下代码AndroidManifest.xml:

android:configChanges="orientation|keyboardHidden|screenSize"
Run Code Online (Sandbox Code Playgroud)

并添加了onConfigurationChanged()方法Activity,但onCreate()每次方向改变时它仍然会通过该方法...

shk*_*der 5

这是正常/正确的行为.

方向改变了你的布局Activity,所以它onCreate()再次经历(实际上是为了让你的UI适应新的配置 - 肖像在所有UI/UX方面都不是风景).

尽量不要使用android:configChanges(来自Android开发指南); 这只是避免了这个问题而且是一个坏习惯.

注意:应避免使用(android:configChanges)并仅将其用作最后的手段.有关如何通过配置更改正确处理重新启动的详细信息,请阅读处理运行时更改.

通过正确的方式处理运行时更改,了解Android生命周期以及如何保存其状态(以便稍后恢复它).