У меня возникла проблема с поворотом Деятельности после того, как я вернулся от другого, который имеет другую ориентацию экрана.
Позвольте мне описать шаги, чтобы воспроизвести это поведение:
1.У меня есть активность, объявленная в манифесте следующим образом:
<activity
android:name=".JobActivity"
android:label="@string/title_activity_job"
android:screenOrientation="portrait" />
Как видите, screenOrientation
имеет значение portrait
Внутри этого упражнения я запускаю другое действие со следующим намерением:
Intent jobDetailsIntent = new Intent(mActivity, JobDetailActivity.class);
startActivity(cameraIntent);
Эта ориентация экрана деятельности объявлена как landscape
.
<activity
android:name=".JobDetailActivity"
android:screenOrientation="landscape"
android:theme="@style/ThemeFullscreen" />
Задание
JobDetailActivity
при нажатии кнопки запускайте другое задание, ожидающее результата.
startActivityForResult(getIntent(activity), requestCode);
Это другое задание объявляется как portrait
<activity
android:name=".QuestionsActivity"
android:screenOrientation="portrait"
android:theme="@style/ThemeFullscreen.Color" />
Когда я получаю результат от этого другого занятия и, выполнив пару действий, я звоню
finish
, чтобы вернуться к первому занятию (
JobActivity
).
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
// Some other stuff
this.finish();
}
}
В этот момент, когда я возвращаюсь к JobActivity
, я вижу действие в landscape
(помните, что оно было объявлено как portrait
) на секунду, а затем возвращается к исходномупозиция.
Подводя итог:
A (portrait) -> B (landscape) -> C (portrait)
После получения результата от C и возврата к B
A (portrait) -> B (landscape)
После вызова finish
из B
A (landscape)
Через секунду
A (portrait)
Есть идеи, почему это может происходить?Спасибо всем, ваша помощь очень ценится.