android:手动处理配置更改的优点/缺点

标签 android

我不希望每次旋转设备时都重新创建我的 Activity,所以我将 android:configChanges="keyboardHidden|orientation"标签放在我的 list 文件中。

这种方法有什么缺点吗?屏幕似乎会在旋转时自动重新布局,并且一切正常,优点是我不需要在每次屏幕旋转时都重新初始化 Activity 中的所有对象。

谢谢!

最佳答案

不确定您是否仍需要答案,但我猜缺点是,如果用户接听电话并将您的应用程序置于后台,它并不能真正让您知道您的应用程序正常工作。换句话说,如果您的应用能够在状态差异最小的情况下经受住方向变化,那么它应该能够处理拨号器将焦点移开。

此外,如果您根据方向或关键字对资源进行了任何更改(例如,如果您有一个仪表板屏幕并且您想要更改主页按钮的位置),Android 不会自动为您加载这些资源。

看看 Google 的设计模式,Google 似乎同时使用了这两种方法。例如,在新的 Google+ 应用程序中,他们不依赖于 configChanges 选项,因为 LogCat 显示了 unexpected resume of activity 消息,对我来说,只有当 Activity 是销毁并重新创建。 Google 确实在其他地方使用了该选项,例如用于编辑约会的日历应用程序,以及我认为的浏览器。

因此,最好在没有 configChanges 的情况下设计您的应用程序,并在一切正常后添加它,如果有一些无法恢复的东西(例如上下文菜单是否显示) .

关于android:手动处理配置更改的优点/缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3738331/

相关文章:

android - Android SDK许可协议(protocol)导致的Travis Ci构建错误

Android:java.lang.IllegalStateException:必须连接 GoogleApiClient

android - 如何在 Android 中以编程方式更改布局高度

java - 将图像跨度设置在文本的下一行和中心

java - Android 网络服务访问

java - Espresso 图像选择器 - CursorIndexOutOfBoundsException 错误

java - android上使用GLES20.glReadPixels时,返回的数据和living preview不完全一样

android - 如何通过 ADB 找到 WiFi 网络共享状态?

android - 如何在 Flutter 中将 TextFormField 的文本对齐到中心、垂直?

android - 在没有应用商店和市场的情况下安装 ios 和 android 应用程序的最佳方法是什么?