Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> andriod 4.0以上版本不調用onConfigrationChange方法的解決辦法

andriod 4.0以上版本不調用onConfigrationChange方法的解決辦法

編輯:關於Android編程

我們首先看看Android4.0以前版本是如何調用onConfigrationChange方法的:

1. 首先在manifest.xml文件裡面添加權限:

2. 然後在manifest.xml文件中activity配置屬性:android:configChanges="orientation|keyboardHidden"

3. 最後在Activity類中繼承方法:

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);

// 可以再次屏切換橫豎屏布局文件,或其他任何自己想做的操作

     if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
            textView.setText("當前屏幕為橫屏");
     }else{
            textView.setText("當前屏幕為豎屏");
     }

}


後來在4.2的版本上,各種嘗試都不調用onConfigurationChanged方法,很是奇怪。我明白記得以前做項目的時候調用此方法是毫無疑問的,那原因到底是什麼呢?此問題困惑了很久,廢話不再多說了,直接說解決辦法把,其實很簡單,修改manifest.xml文件配置的屬性,在後面加上一個screenSize即可,如下:

android:configChanges="orientation|keyboardHidden|screenSize"

然後一運行,果然是Android版本的問題。哈哈!此問題終於解決了。


最後須注明的是:

對android:configChanges屬性,一般認為有以下幾點:

1、不設置Activity的android:configChanges時,切屏會重新調用各個生命周期,切橫屏時會執行一次,切豎屏時會執行兩次

2、設置Activity的android:configChanges="orientation"時,切屏還是會重新調用各個生命周期,切橫、豎屏時只會執行一次

3、設置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會重新調用各個生命周期,只會執行onConfigurationChanged方法

但是大家需注意的是,在4.0以後的版本需要加上ScreenSize。噢啦!


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved