Android活动堆栈问题

时间:2011-02-28 17:18:22

标签: android

  

可能重复:
  Removing an activity from the history stack

我对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,这将允许用户更改答案。

3 个答案:

答案 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。

相关问题