作为测试样本,应用程序有2个活动:MainActivity在按钮单击时启动SecondActivity.它在Android 4.0.4上工作正常,但在Android 4.1.2上我遇到了意外行为.
系统设置中的AutoRotation已关闭(或打开 - 无关紧要,无论如何都会忽略"后面"选项).
android:screenOrientation="landscape"为MainActivity设置,并android:screenOrientation="behind"为SecondActivity设置,这意味着必须以横向方向启动SecondActivity.适用于Android 4.0.4,但在Android 4.1.2上,SecondActivity以纵向方向开始.
AndroidManifest.xml中:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.my.example.testbehindorientation.MainActivity"
android:label="@string/app_name"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.my.example.testbehindorientation.SecondActivity"
android:configChanges="screenSize|orientation"
android:label="@string/title_activity_second"
android:screenOrientation="behind" >
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
SecondActivity.java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
logOrientation("onCreate");
}
@Override
protected void onDestroy() {
super.onDestroy();
logOrientation("onDestroy");
}
@Override
protected void onResume() {
super.onResume();
logOrientation("onResume");
}
private void logOrientation(String prefix) {
int requestedOrientation = …Run Code Online (Sandbox Code Playgroud) android orientation screen-orientation android-orientation android-activity