如何从堆栈中删除最后一个活动?

use*_*542 3 android

我有 3 个活动(A、B、C),流程是:

A -> B -> C
Run Code Online (Sandbox Code Playgroud)

当我点击返回时,流程是:

C -> B -> A
Run Code Online (Sandbox Code Playgroud)

但我想要这个:

C -> A
Run Code Online (Sandbox Code Playgroud)

不是

C -> B -> A
Run Code Online (Sandbox Code Playgroud)

如何?

Geo*_*rge 5

有几种方法可以做到这一点。


如果您知道不想从堆栈中删除哪个活动,您所要做的就是finish()在调用后调用startActivity(intent)下一个活动之后调用,因此该活动将从流程中排除,请参见下面的示例:

Intent intent = new Intent(...);
startActivity(intent);
finish();
Run Code Online (Sandbox Code Playgroud)

如果决策是基于与用户的交互而做出的,您可以调用startActivityForResult()来启动下一个活动,当活动结束时,您必须返回一个 RESULT 值。

这是关于如何使用的很好的文档startActivityForResult()http://developer.android.com/training/basics/intents/result.html