只调用 onConfigurationChanged() 并更改方向是一件非常好的事情。它实际上是首选,因为这意味着您在 onCreate() 中的初始化不必再次发生——您可以在 onConfigurationChanged() 中重新绑定的新视图中重用它们。这导致更快的应用程序使用更少的内存并且不那么笨重。
一个例子:
你有一个 ListView。该 ListView 使用 ArrayAdapter。在 onCreate() 中,您使用 findViewById(R.id.xxx) 找到 listView,然后创建一个新的 ArrayAdapter 并为该 listView 设置它。如果每次在方向改变时调用 onCreate() ,那么每次方向改变时都会创建一个新的 ArrayAdapter 。想象一下切换方向 3 次 - 多么浪费!
像这样,您可以在 onCreate() 中创建 ArrayAdapter,一次,永远(当您的应用程序创建时)。当方向改变时,在 onConfigurationChanged() 中,只需使用 findViewById(R.id.xxxx) 为您再次拾取的新 ListView 重置 ArrayAdapter。完毕。仅创建了 1 个 ArrayAdapter,并且它的数据保持不变以适应新的方向。
美丽的!:)