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

3
我有一个应用程序,希望按照以下方式进行导航:
A -> B -> C
并且从C启动一个名为D的新活动,该活动返回到顶部并清除任务,这意味着如果我在D上按返回键,它会回到主屏幕。
如果我理解正确,FLAG_ACTIVITY_TASK_ON_HOME标志可以实现此操作...但仅适用于当前API(11>)。
我正在为Android 1.5>开发,如何实现此行为?
谢谢!
3个回答

6
你正在寻找这个:

你正在寻找这个:

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

使用谷歌提供的Android兼容性库 - 该库可在SDK中找到。

或使用finish()


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


0

我最终使用了这个https://dev59.com/AVvUa4cB1Zd3GeqPtnSD#8576529,因为我需要在1.5 >上使用它,而该标志仅在更高的API上可用。

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


由于此回答已过时,我已接受@A. Binzxxxxxx的最新信息(但尚未尝试他的代码)。 - neteinstein

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接