如何重置所有活动并启动新活动?

时间:2011-05-05 18:48:10

标签: android

我有一个应用程序,我想以这种方式导航:

A - > B - > C

从C发布了一个名为D的新活动,该活动将进入顶部并清除任务,这意味着如果我按回D,它将进入主屏幕。

如果我理解正确,这个FLAG:FLAG_ACTIVITY_TASK_ON_HOME会这样做......但它仅适用于当前的API(11>)。

我正在为Android 1.5开发>我怎么也有这种行为?

谢谢!

3 个答案:

答案 0 :(得分:6)

你正在寻找这个:

Intent intent = new Intent(activity, activityClass);
ComponentName cn = intent.getComponent();
Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);
activity.startActivity(mainIntent);

使用google的android兼容性库 - 在sdk中找到。

或使用finish()

答案 1 :(得分:2)

您可以将FLAG_ACTIVITY_CLEAR_TASKFLAG_ACTIVITY_NEW_TASK一起使用。

  

public static final int FLAG_ACTIVITY_CLEAR_TASK

     

自:API Level 11

     

如果在传递给Context.startActivity()的Intent中设置,则此标志将为   导致任何与活动相关联的现有任务   在活动开始前清除。也就是活动   成为一个空的任务的新根,和任何旧的任务   活动结束了。这只能与。一起使用   FLAG_ACTIVITY_NEW_TASK。

http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TASK

答案 2 :(得分:0)

我最终使用此https://stackoverflow.com/a/8576529/327011因为我需要在1.5>中使用它并且该标志仅适用于更高的API。

如果我不需要支持“低”API级别,@ aromero的答案将是我的选择。