只有一个活动我有5个活动:A,B,C,d和E在返回堆栈
我可以从他们每个人开始的所有活动,但我想这回堆栈只能保存最后一项活动。
例如:A-> B-> C-> d。如果我在D,我可以回到C,但现在,在C中,当我推回按钮时,我只想去主要活动(A)。
它是否可行? 谢谢!
只有一个活动我有5个活动:A,B,C,d和E在返回堆栈
我可以从他们每个人开始的所有活动,但我想这回堆栈只能保存最后一项活动。
例如:A-> B-> C-> d。如果我在D,我可以回到C,但现在,在C中,当我推回按钮时,我只想去主要活动(A)。
它是否可行? 谢谢!
当从乙转变 - > C,呼吁活动B.终点()方法这将防止B,从被置于背面堆栈上。
您可以清除返回堆叠,一旦你在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;
}
但是这不会让OP从D去C – codeMagic
@codeMagic我编辑了我的答案。 – Raghunandan
好吧,这将工作,但我很好奇,如果用户在E,OP想要什么,因此我在OP的评论。但如果这是他们需要那么这将是答案 – codeMagic
如果你可以从D到C那么你会不会在后面的堆栈中有2个'Activities',A&C?如果从B到C,你会回到B吗?如果你在E,你只想回到D然后A? – codeMagic
这是否为常量序列,即A-> B-> C-> D,并且您的意图是仅跳过B.或者您正在维护一个活动的计数或级别,您只需要在后退堆栈中进行两项活动。即第一项活动和当前活动之前的最后一项活动? –