Тост меняет ориентацию приложения только портрет - PullRequest
0 голосов
/ 12 июня 2018

Вот основной:

 <activity android:name=".MainActivity"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Main2Activity"
        android:screenOrientation="portrait">
    </activity>

У нас есть два действия, ориентация обоих ограничена Портретом , как указано в Манифесте.MainActivity запускается Main2Activity, onBackPressed() из Main2Activity переопределяется и показывает код Toast ниже:

@Override
public void onBackPressed() {
    Toast.makeText(Main2Activity.this,"This is from Second",Toast.LENGTH_SHORT).show();
    super.onBackPressed();

}

Описание проблемы:
1Держите телефон в альбомной ориентации
2. Запустите приложение
3. MainActivity создается в портретном режиме (пока проблем нет)
4. Запустите Main2Activity из MainActivity, есть кнопкадля этого
5. Main2Activity открывается в портретной ориентации (до сих пор это не проблема)
6. Нажмите аппаратную кнопку возврата, Main2Activity исчезнет
7. MainActivity появится вLandscape с Toast, затем он автоматически меняется на Portrait.
8. Устройство было в альбомной ориентации на всех этих этапах
9. Попробовал изменить контекст на контекст приложения, но не повезло
10. Удалил Toast и всеработает как ожидалось

Почему это поведение в точке 7?

mainActivity

Main2Activity

After pressing the back button on Main2Activity

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Измените переопределение onBackPressed () из этого

@Override
public void onBackPressed() {
    Toast.makeText(Main2Activity.this,"This is from Second",Toast.LENGTH_SHORT).show();
    super.onBackPressed();

}

На это

@Override
public void onBackPressed() {
      super.onBackPressed();
      Toast.makeText(Main2Activity.this,"This is from Second",Toast.LENGTH_SHORT).show();
}

Надеюсь, это будет работать !!

0 голосов
/ 13 июня 2018

Попробуйте добавить тост после super.onBackPressed ();

...