2013-04-03 79 views
2

只有一个活动我有5个活动:A,B,C,d和E在返回堆栈

我可以从他们每个人开始的所有活动,但我想这回堆栈只能保存最后一项活动。

例如:A-> B-> C-> d。如果我在D,我可以回到C,但现在,在C中,当我推回按钮时,我只想去主要活动(A)。

它是否可行? 谢谢!

+0

如果你可以从D到C那么你会不会在后面的堆栈中有2个'Activities',A&C?如果从B到C,你会回到B吗?如果你在E,你只想回到D然后A? – codeMagic

+0

这是否为常量序列,即A-> B-> C-> D,并且您的意图是仅跳过B.或者您正在维护一个活动的计数或级别,您只需要在后退堆栈中进行两项活动。即第一项活动和当前活动之前的最后一项活动? –

回答

1

当从乙转变 - > C,呼吁活动B.终点()方法这将防止B,从被置于背面堆栈上。

0

您可以清除返回堆叠,一旦你在C和导航到A.

A到BB到C C到D

返回d到C

在C语言中,你可以使用下面的。

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
    onBackPressed(); 

    } 

return super.onKeyDown(keyCode, event); 
    } 

public void onBackPressed() { 
Intent myIntent = new Intent(C.this, A.class) 
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//clear top of stack. 
startActivity(myIntent); 
finish(); 
return; 
    } 
+0

但是这不会让OP从D去C – codeMagic

+0

@codeMagic我编辑了我的答案。 – Raghunandan

+0

好吧,这将工作,但我很好奇,如果用户在E,OP想要什么,因此我在OP的评论。但如果这是他们需要那么这将是答案 – codeMagic