`
qdpurple
  • 浏览: 276740 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

<转>onConfigurationChanged未被调用的原因

 
阅读更多

 

 

原文: http://www.cnblogs.com/jayceli/archive/2012/10/10/2718984.html

今天碰到一个奇怪的问题。

onConfigurationChanged未被调用。

根据正常认知,在AndroidManifest.xml中设置android:configChanges="orientation“,

然后在Java代码中重写onConfigurationChanged,即不会重复Activity生命周期,而是调用onConfigurationChanged。

然而今天这种做法没有效果,什么原因呢。

原来,自从Android 3.2(API 13),screen size也开始跟着设备的横竖切换而改变。

所以,在AndroidManifest.xml里设置的MiniSdkVersion和 TargetSdkVersion属性大于等于13的情况下,

如果你想阻止程序在运行时重新加载Activity,除了设置”orientation“,你还必须设置"ScreenSize"。

 

解决方法:

AndroidManifest.xml中设置android:configChanges="orientation|screenSize

分享到:
评论

相关推荐

    系统设置更改事件onConfigurationChanged 信息处理

    但可以通过在AndroidManifest.xml中对应的Activity标签中添加`android:configChanges`属性,并指定需要监听的配置变化,来避免Activity被重建,而是调用`onConfigurationChanged` 方法。 例如,如果你希望在屏幕...

    Android中英俄切换

    &lt;/resources&gt; &lt;!--中文版--&gt; ``` ```xml &lt;resources&gt; &lt;string name="welcome_message"&gt;Welcome to our app!&lt;/string&gt; &lt;/resources&gt; &lt;!--英文版--&gt; ``` ```xml &lt;resources&gt; &lt;string name="welcome_message"&gt;До...

    Android笔记之:onConfigurationChanged详解

    当 `onConfigurationChanged()` 被调用时,可以看到 `str` 的值在屏幕旋转时得到保留,这表明配置改变并未导致 `Activity` 的重新创建。若不指定 `android:configChanges`,每次屏幕旋转都会导致 `Activity` 重新...

    android屏幕控制

    &lt;item name="android:windowNoTitle"&gt;true&lt;/item&gt; &lt;/style&gt; &lt;/resources&gt; ``` 然后在`AndroidManifest.xml`中应用这个主题: ```xml &lt;activity android:name=".YourActivity" android:theme="@style/NoTitle"&gt; ...

    竖屏转横屏的 Activity切换效果

    - 动画定义通常包含在res/anim目录下,通过`&lt;rotate&gt;`、`&lt;translate&gt;`等标签来描述旋转、平移等动作。例如,`&lt;rotate&gt;`标签可以设置`fromDegrees`和`toDegrees`属性来定义旋转的角度,`duration`属性定义动画持续...

    Android手机横竖屏切换过程中避免生命周期的变化的方法.pdf

    总之,通过合理配置`&lt;activity&gt;`标签以及重写`onConfigurationChanged()`方法,开发者可以有效控制Activity在横竖屏切换时的生命周期行为,确保应用在不同屏幕方向下的连续性和稳定性,从而提高用户体验。...

    日期选择控件(可防止屏幕旋转抛出的异常)

    selectedDate = new MutableLiveData&lt;&gt;(); // 初始化默认日期 Calendar calendar = Calendar.getInstance(); selectedDate.setValue(calendar); } public MutableLiveData&lt;Calendar&gt; getSelectedDate() { ...

    屏幕方向锁定后自动旋转.zip

    在源码中,还可能有对AndroidManifest.xml的修改,尤其是`&lt;activity&gt;`标签内的`android:configChanges`属性,它定义了哪些配置更改应由应用程序自己处理,而不是默认地重新创建活动: ```xml &lt;activity android:...

    android重力感应禁止调用oncreat方法

    这是因为默认情况下,Android系统为了保持应用的一致性,在屏幕方向发生变化时会销毁当前活动(Activity)并重新创建一个新的实例,这会导致`onCreate()`方法被重新调用。这对于某些场景来说并不理想,例如当用户正在...

    Android WebView添加夜间模式

    &lt;item name="colorPrimaryVariant"&gt;@color/colorPrimaryVariantDark&lt;/item&gt; &lt;item name="colorOnPrimary"&gt;@color/colorOnPrimaryDark&lt;/item&gt; ... &lt;item name="android:windowBackground"&gt;@color/night_...

    Android屏幕旋转

    如果不处理配置变化,屏幕旋转会导致以下生命周期方法顺序:`onPause()` -&gt; `onSaveInstanceState(Bundle outState)` -&gt; `onStop()` -&gt; `onDestroy()` -&gt; `onCreate(Bundle savedInstanceState)` -&gt; `onStart()` -&gt;...

    Android原生方式实现夜间模式

    &lt;item name="colorPrimaryDark"&gt;@color/colorPrimaryDark&lt;/item&gt; &lt;item name="colorAccent"&gt;@color/colorAccent&lt;/item&gt; &lt;/style&gt; &lt;!-- res/values-night/styles.xml --&gt; &lt;style name="AppTheme" parent="Theme....

    Android中WebView播放网上视频,横竖屏切换

    1. **配置Activity**:在AndroidManifest.xml中,将Activity的`android:configChanges`属性设置为`orientation|screenSize`,这样在横竖屏切换时,系统不会默认销毁Activity,而是调用`onConfigurationChanged()`...

    安卓Android源码——(旋转关节).zip

    - `onConfigurationChanged(Configuration newConfig)`:如果在AndroidManifest.xml中设置`android:configChanges="orientation"`,那么Activity不会被销毁,而是直接调用此方法。 4. **AndroidManifest配置** - ...

    屏幕旋转时调用PopupWindowupdate方法更新位置失效的问题及解决方案.docx

    android:orientation="horizontal"&gt;&lt;/LinearLayout&gt; &lt;/RelativeLayout&gt; ``` ##### Activity代码实现 在Activity代码中,关键部分是`onConfigurationChanged`方法中的处理逻辑。该方法会在屏幕旋转时被调用。这里...

    Android常用技巧.docx

    有时,你会遇到横竖屏切换时`onConfigurationChanged`被调用次数不一致的情况。这可能是由于设备厂商对Android系统的定制导致的行为差异。通常,你应该确保在`onConfigurationChanged`方法中正确处理配置变化,以...

    锁定活动方向

    在这个XML文件中,每个Activity都可以通过`&lt;activity&gt;`标签来定义,其中有一个属性`android:screenOrientation`可以用来控制Activity的屏幕方向。例如,如果你想让Activity始终处于竖屏模式,你可以这样写: ```xml...

Global site tag (gtag.js) - Google Analytics