我对Android堆栈和推送堆栈流程提出了一个问题,如下所述:
A-> B-> C-> C-> C-> C-> d
C会反复调用自己,直到满足某些条件。
我使用下面的代码开始活动。
Intent intent = new Intent(this,MyActivity.class); startActivity(意向);
我的问题是在活动D开始后我想立即回到活动B而不是在按下后退按钮时返回活动C.
A-> B-> C-> C-> C-> C-> D-> A-> B
我知道我应该使用intent setFlags,但我不知道该使用什么 http://blog.akquinet.de/2010/04/15/android-activites-and-tasks-series-intent-flags/
有什么建议吗?
提前致谢。
编辑: 对于这种情况,活动C是问题页面,活动D是结果页面。 A-> B->问题1->问题2->问题3 - >结果
我需要保留历史堆栈b4活动D,这将允许用户更改答案。
答案 0 :(得分:1)
表示活动:c: 尝试intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
答案 1 :(得分:1)
每次调用具有B的意图的startActivity()时,请尝试Intent.FLAG_ACTIVITY_CLEAR_TOP。
这将把B带到顶部,弹出所有活动。
答案 2 :(得分:1)
@Override
public void onBackPressed() {
Intent i = new Intent(ACTIVITY_D, ACTIVITY_B);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
return;
}
覆盖onBackPressed()
并设置FLAG_ACTIVITY_CLEAR_TOP
标记。将上述功能放在您的活动D。