我有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();
}
答案 0 :(得分:0)
只需在活动A的{strong>之后中调用finish()
,就可以调用活动B的意图。即使在调用finish()之前启动了另一个意图,它也会执行。
您在活动B中呼叫finish()
,而不是活动A。
如果您希望在某些情况下使用旧活动,而在某些情况下需要新的活动,则只需传递一个标志(布尔值),以告知该活动是否重新启动。然后,如果标志为是,那么
finish();
startActivity(getIntent());
在活动A中。
答案 1 :(得分:0)
尝试:
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);