首先在manifest文件中配置了android:configChanges="orientation|keyboard",然后在Activity中Override了onConfigurationChanged方法,但是无论怎么着,这个方法就是不执行
今天找到解决方法,要在configChanges中加screenSize这个属性才回执行到onConfigurationChanged
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Checks the orientation of the screen if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { //Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ // Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); } // Checks whether a hardware keyboard is available if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) { isShowedKeyBoard = true; showMessage("keyboard is visible"); // Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show(); } else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) { isShowedKeyBoard = false; showMessage("keyboard is invisible"); // Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show(); } }