首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未调用onConfigurationChanged

未调用onConfigurationChanged
EN

Stack Overflow用户
提问于 2011-04-11 18:32:27
回答 17查看 76K关注 0票数 153

今天早上,我遇到了一个试图处理onConfigurationChanged事件的问题。问题是,当我更改电话的方向时,不会调用我覆盖的方法。根本不会被叫到。

我已经按照android文档中提到的那样,将android:configChanges="orientation"放在清单中定义的活动上,但这并没有什么不同。

你想出这个问题了吗?

EN

回答 17

Stack Overflow用户

回答已采纳

发布于 2011-05-24 18:43:58

问题是如果你使用这个方法

代码语言:javascript
复制
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

要强制将Activity的方向设置为纵向模式,您不是接收orientation更改的候选对象。

因此,解决方案是不setRequestOrientation到特定的模式。而是使用SCREEN_ORIENTATION_SENSOR.

票数 40
EN

Stack Overflow用户

发布于 2011-09-10 02:45:17

这是我的小精灵,解决了同样的问题:

警告:从Android3.2(API13级)开始,当设备在纵向和横向之间切换时,“屏幕尺寸”也会发生变化。因此,如果您希望防止在为API13级或更高级别(由minSdkVersion和targetSdkVersion属性声明)进行开发时由于方向更改而导致运行时重新启动,则除了" orientation“值之外,还必须包括"screenSize”值。也就是说,您必须取消android:configChanges="orientation|screenSize".但是,如果您的应用程序以API级别12或更低为目标,那么您的activity将始终自行处理此配置更改(此配置更改不会重新启动您的activity,即使在Android 3.2或更高版本的设备上运行)。

(来自http://developer.android.com/guide/topics/resources/runtime-changes.html)

TL;DR:目标接口级13+时,在configChanges中添加"|screenSize“

票数 255
EN

Stack Overflow用户

发布于 2013-03-01 00:01:09

有些4.0版本的设备不支持onConfigurationChanged。只需向screenSize添加一个监听器即可。

代码语言:javascript
复制
android:configChanges="orientation|screenSize"
票数 42
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5620033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档