Android onConfigurationChanged()仅在某些情况下

时间:2014-07-16 18:36:14

标签: android configuration orientation

我偶然发现了一个问题,当屏幕在处于LANDSCAPE方向时关闭时,某些设备会将应用程序“旋转”回PORTRAIT位置(因为锁屏只是PORTRAIT或类似的东西)。我在发布之前做了一些研究,最流行的解决方法是修改应用程序的配置更改过程,以防止在配置更改后重新创建活动。

但禁用活动娱乐对我来说不是一个解决方案,因为我的应用程序支持两种方向的布局等。

所以我想知道,是否可以仅在特殊情况下禁用配置更改(屏幕已关闭且方向为横向)?或者是覆盖onConfigurationChanged()然后在该函数内手动管理活动重新创建的正确方法(我想只需在更改方向时设置不同的布局资源,根本不切割它)?

1 个答案:

答案 0 :(得分:1)

  

或者是覆盖onConfigurationChanged()然后在该函数中手动管理活动娱乐的正确方法吗?

某种程度上是肯定的。

您无法以编程方式设置configChanges属性。我想这与创建Activity的方式有关。首先从XML创建它们,然后调用活动实现中的重写方法。 API中没有任何内容可以让您更改configChanges属性。

现在,在你的情况下,它听起来并不像你需要的那样。如果您同时支持两个方向,那么如果用户锁定设备并且它旋转回来,为什么重要?从用户体验的角度来看,我们再次知道它处于纵向模式。那么你的应用程序应该在它打开时备份。