我是Android编程的新手,所以我可能会错过一些重要的事情。
我想要做的是完成当前活动(ActivityB)和上一个活动(ActivityA)。
用户可以使用FLAG_ACTIVITY_REORDER_TO_FRONT
在ActivityA和ActivityB之间切换。现在,我要完成ActivityB
和上一个ActivityA
并开始新的ActivityA
。
但是,即使完成ActivityA
之后,上一个ActivityB
仍在运行。
代码是这样的。
ActivityA
private void startActivityB() {
Intent intent =
new Intent(ActivityA.this, ActivityB.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
}
ActivityB
private void exitActivityB() {
Intent intent =
new Intent(ActivityB.this, ActivityA.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
@Override
private void onBackPressed() {
// finish ActivityB and the previous ActivityA
Intent intent =
new Intent(ActivityB.this, ActivityA.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
}
我这有什么问题?如何完成上一个ActivityA
并开始新的ActivityA
?
答案 0 :(得分:1)
尝试以下方式
Intent i = new Intent(ActivityB.this, ActivityA.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
答案 1 :(得分:0)
尝试这个:
@Override
private void onBackPressed() {
// finish ActivityB and the previous ActivityA
Intent intent =
new Intent(ActivityB.this, ActivityA.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
答案 2 :(得分:0)
尝试此代码
Intent i = new Intent(ActivityB.this, ActivityA.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK |Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
finish();