在三星手机调用拍照系统后,应用会被强制全屏,结果就是Activity被强制重新调用了onCreate,页面被刷新,如果只是Activity倒也好办,保存之前状态再还原即可。但是如果是在WebView中调用拍照系统就不好办了,因为可能已经打开好几层网页了,总不能吧所有reload的url状态都保存起来。解决方式:
<android:name=".activity.WebActivity"
android:screenOrientation="portrait"
android:configChanges="screenSize|keyboardHidden|orientation">
<activity/>
重点在于:android:configChanges,加上这个属性后,问题解决。
看一下原因:
在activity加上android:configChanges="keyboardHidden|orientation"属性,就不会重启activity.而只是调用onConfigurationChanged(Configuration newConfig).这样就可以在这个方法里调整显示方式.
publicvoidonConfigurationChanged(Configuration newConfig) {
try{
super.onConfigurationChanged(newConfig);
if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LAND SCAPE) {
Log.v("Himi","onConfigurationChanged_ORIENTATION_LANDSCAPE");
}else if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_ PORTRAIT) {
Log.v("Himi","onConfigurationChanged_ORIENTATION_PORTRAIT");
}
}catch(Exception ex) {}}
网友评论