2013-02-14 79 views
0

我有一些活动A,B,C,D。没有它设置的方式是这样的。清除一堆活动

  1. 当用户启动应用程序时,活动A启动。
  2. 基础上的偏好,而如果设置为true,将立即启动活动d
  3. 从那里d起点C和C启动B的,然后开始一个

...在这一点上我想d, C,B从背部堆栈中移除,以便用户不能通过从A后退(但后退按钮在D,B,C中应该像它应该那样工作)而不能回到它们。

所以总结一下,我需要这样的 D <--> C <--> B --> A

我使用意图的标志Intent.FLAG_ACTIVITY_CLEAR_TOP & Intent.FLAG_ACTIVITY_NEW_TASK 尝试,但他们不工作。 我该如何做到这一点?

+0

你应该尝试startActivityForResult然后你应该处理结果...如果它从A返回,那么你也应该完成它们。否则,他们只会做他们应该做的事情。 – yahya 2013-02-14 21:46:14

回答

0

然后开始活动A用FLAG_ACTIVITY_TASK_ON_HOME标志设置。

好的。

如何在启动A后调用B完成?

+0

它没有工作。 – Shuvo 2013-02-14 21:27:40

+0

这就是我现在正在做的 'Intent main = new Intent(this,MainActivity.class); \t \t \t main.addFlags(Intent.FLAG_ACTIVITY_TASK_ON_HOME); main.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); main.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); \t \t \t startActivity(main); finish();' – Shuvo 2013-02-15 03:16:39

+0

我想,不要添加新的任务。留下剩余的并检查 – 2013-02-15 17:37:35