Toast 正在改变仅纵向应用程序的方向

Toast is changing orientation of the portrait only app

这是最重要的:

 <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 正在启动 Main2ActivityMain2ActivityonBackPressed() 被覆盖并显示下面的 Toast 代码:

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

}

问题陈述:
1. 将 phone 保持在横向
2. 启动应用程序
3. MainActivity 在肖像中创建(到这里没问题)
4. 从 MainActivity 启动 Main2Activity,有一个按钮可以做到这一点
5. Main2Activity 纵向打开(到这里没问题)
6. 按硬件后退按钮,Main2Activity 消失
7. MainActivity 与 Toast 一起显示为横向,然后自动更改为纵向。
8. 设备在所有这些步骤中都处于横向状态
9. 尝试将上下文更改为应用程序上下文但没有成功
10. 移除 Toast,一切正常

为什么第 7 点会出现这种行为?

尝试在 super.onBackPressed() 之后添加吐司;

更改您的 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();
}

希望有用!!