onConfigurationChanged 未触发
Posted
技术标签:
【中文标题】onConfigurationChanged 未触发【英文标题】:onConfigurationChanged is not triggered 【发布时间】:2018-03-02 16:57:37 【问题描述】:我想根据设备旋转设置活动配置。
我使用以下方法处理旋转:
@Override
public void onConfigurationChanged(Configuration newConfig)
.....
它可以从纵向旋转到横向。回调触发和应用的方向改变。
但是当它是横向时它不会触发围绕设备旋转。但是应用程序的方向发生了变化。
我在清单中添加了以下行。
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
android:configChanges="orientation|screenSize"
我该如何处理?
【问题讨论】:
【参考方案1】:android:configChanges="orientation|keyboardHidden|screenSize" rather than android:configChanges="orientation"
确保你没有打电话
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
任何地方。这将导致onConfigurationChange()
无法触发。
另外,请检查您的 manifest
中是否使用了 android:screenOrientation
。
或者,在java代码中setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
要将您的Activity
的方向强制为纵向模式,您不适合接收方向更改。
所以解决方案是不要setRequestOrientation
到特定模式。但改为使用SCREEN_ORIENTATION_SENSOR
。
参考:Android onConfigurationChanged not being called
【讨论】:
以上是关于onConfigurationChanged 未触发的主要内容,如果未能解决你的问题,请参考以下文章
更改语言环境后未调用 onConfigurationChange
移动到 1/3 屏幕宽度时未调用 onConfigurationChanged
内存泄漏通过onConfigurationChanged()
onConfigurationChanged 屏幕停止在设备上旋转。在模拟器上工作
Android开发,重写了onConfigurationChanged方法。横屏切换竖屛不会重建,而竖屛切换横屏却仍会重建活动