创建相同活动时销毁活动

时间:2019-07-31 20:20:24

标签: java android

我有2个活动A和B,A在清单启动模式下被定义为“单任务”,这应该是正确的,我无法更改。 A启动活动B,然后当B单击后退按钮时,我想再次启动活动A,但是我想销毁上一个活动,并创建A的新实例。现在,以下代码不起作用。这只是让我回到了以前的A活动。

<activity
            android:name="A"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme" />
 public void onBackPressed() {
        Intent intent = new Intent(this,A.class);
        intent.putExtra("newextra1","newextra1");
        intent.putExtra("newextra2","newextra2");
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(intent);
        finish();
    }

2 个答案:

答案 0 :(得分:0)

只需在活动A的{strong>之后中调用finish(),就可以调用活动B的意图。即使在调用finish()之前启动了另一个意图,它也会执行。

您在活动B中呼叫finish(),而不是活动A。

如果您希望在某些情况下使用旧活动,而在某些情况下需要新的活动,则只需传递一个标志(布尔值),以告知该活动是否重新启动。然后,如果标志为是,那么

finish(); 
startActivity(getIntent());

在活动A中。

答案 1 :(得分:0)

尝试:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);