android:configChanges="screenSize|orientation|keyboardHidden">
标签无效。旋转设备时,我的活动总是被破坏。我不知道为什么会这样。我已经为上面添加了所有可能的标志,它仍然没有效果。另一个相关的(?)事实:这个活动包含一个OpenCv JavaCameraView(引擎盖下的摄像头1)。
这是xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mycompany.myname.mycamera">
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="false"
android:theme="@style/AppTheme">
<activity
android:name=".activities.CaptureActivity"
android:configChanges="screenSize|orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
为什么这个标签可能没有任何效果?
e:我应该指定:我想防止我的活动在旋转时被破坏,但我确实想知道旋转何时发生以及当前的方向是什么。
答案 0 :(得分:0)
这应该有效:
android:configChanges="orientation|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();
}
}