1

请告诉我,如何杀死以前堆叠的活动。我的要求是让我从活动 A---->B----->C-------->D----- >E 然后活动堆栈将是 EDCBA 现在我在E,如果我的所有工作都完成了,那么我 使用

startActivity(intent); 

this.finish();

此代码将仅 终止 E活动,但我也想终止CD活动。我怎样才能做到这一点。谢谢。

4

3 回答 3

7

一种解决方案是使用标志 FLAG_ACTIVITY_CLEAR_TOP 调用 Activity [B]

Intent b = new Intent(this,B.class);
b.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(b);
this.finish();

这会杀死C D E

于 2012-04-07T05:46:11.463 回答
3
Intent intent  = new Intent(this, B.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);        
    startActivity(intent);
于 2012-04-07T05:48:10.327 回答
2

您必须将活动上下文传递给 intet,以便您可以在活动上调用完成。

也好主意是通过使用开始活动startActivityForResult(Intent, int).

int您开始的活动的代码在哪里。

稍后您可以调用finishActivity(int requestCode)which 将终止您提供的代码的活动。您可以在strings.XML.

http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent , int)

于 2012-04-07T05:47:21.307 回答