在按下时跳过直接返回到父项活动

asw*_*esh 6 android android-intent

我正在处理的Android应用中遇到一个小问题:

有三个活动,即A,B,C,调用按以下顺序排列:A - > B - > C.在C中,当我按BACK按钮时,它应该返回A [默认情况下不是B ].按下A中的BACK将退出程序.

我试图从C调用一个意图到A.但是在这种情况下,调用调用进入循环:A - > B - > C - > A,因为新活动被推到堆栈顶部.结果,当在A处按下BACK时,不是退出[A是开始],而是进入C然后是B,然后在不需要的圆圈中返回到A.

如果有人能够提供更好的方法来解决这个循环的场景,那将是很棒的!

nit*_*ddy 20

非常简单!!当你从B开始活动C时,使用B.finish().像这样的东西.

Intent i = new Intent(B.this, C.class);
B.this.finish();
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

这将从堆栈中删除B!


小智 11

可能迟到了,但是对于那些可能在搜索中找到它的人:你可以添加

        android:noHistory="true"
Run Code Online (Sandbox Code Playgroud)

到AndroidManifest中的活动B. 这也将避免在C返回结果时在活动B中调用onActivityResult()方法.一旦你开始C,我基本上就像B消失了.