首先在配置文件中指明监听的变化:android:configChanges="orientation|screenSize"
之后在activity中重写
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
Log.e(tag, "onConfigurationChanged");
if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
// this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Log.e(tag, "橫屏");
}else{
// this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Log.e(tag, "竖屏");
}
}
Configuration configuration=getResources().getConfiguration();
if(configuration.orientation==Configuration.ORIENTATION_LANDSCAPE){
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}else{
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
需要注意的是:android:targetSdkVersion="12"以及以下,android:configChanges="orientation"就可以回调
在大于12时,android:configChanges="orientation|screenSize"才可以回调。