Поворот активности Android - PullRequest
0 голосов
/ 06 декабря 2018

У меня возникла проблема с поворотом Деятельности после того, как я вернулся от другого, который имеет другую ориентацию экрана.

Позвольте мне описать шаги, чтобы воспроизвести это поведение:

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)

Есть идеи, почему это может происходить?Спасибо всем, ваша помощь очень ценится.

1 Ответ

0 голосов
/ 06 декабря 2018

Я не понимаю этот код:

Intent jobDetailsIntent = new Intent(mActivity, JobDetailActivity.class);
startActivity(cameraIntent);

Существует разница между именем намерения объявлять и намерением, используемым для начала действия.

Возможно, проблема здесь.

Спасибо.

...