我不希望每次旋转设备时都重新创建我的Activity,所以我将android:configChanges =“ keyboardHidden | orientation”标签放入清单文件中。
这种方法有什么缺点吗?屏幕似乎在旋转时会自动重新布局,并且一切正常,其优点是,每次屏幕旋转时,我都不需要重新初始化活动中的所有对象。
谢谢!
最佳答案
不知道您是否仍然想要一个答案,但是我猜它的缺点是,如果用户接听电话并将您的应用程序置于后台,它并不能真正让您知道您的应用程序可以正常工作。换句话说,如果您的应用程序能够在状态变化最小的情况下保持方向变化,那么它应该能够处理使焦点移开的拨号程序。
此外,如果您根据方向或关键字对资源进行了任何更改(例如,如果您具有仪表板屏幕,并且想要更改主页按钮的位置),那么Android不会自动为您加载这些内容。
从谷歌的设计模式来看,谷歌似乎同时使用了两种方法。例如,在新的Google+应用中,他们不依赖configChanges
选项,因为LogCat显示unexpected resume of activity
消息,对我来说,该消息仅在活动被销毁并重新创建时才显示。 Google确实在其他地方使用了该选项,例如“日历”应用程序来编辑约会,以及我认为的“浏览器”。
因此,最好在不使用configChanges
的情况下设计应用程序,然后在一切正常的情况下稍后将其添加(如果有某些内容无法还原)(例如,是否显示上下文菜单)。