【发布时间】:2012-12-26 12:31:33
【问题描述】:
我完全同意下面的导航
假设 Book 详细信息是在 BookDetailActivity 的不同实例中创建的。
book2详细信息中按下之前的堆栈是:
- BookDetailActivity(第 2 册 - 你在这里)
- BookDetailActivity(书 1)
- AllBooksActivity
如果我关注guidelines,我将使用:
Intent parentActivityIntent = new Intent(this, AllBooksActivity.class);
parentActivityIntent.addFlags(
Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(parentActivityIntent);
finish();
但是这段代码最大的问题是BookDetailActivity(Book 1)还活着!
在“up”后按返回键将显示第 1 册的详细信息。
我怎样才能杀死原始AllBooksActivity和我按下的活动之间的所有BookDetailActivity?
【问题讨论】:
-
你考虑过用片段代替活动吗?
-
我需要一个不同的 Activity,因为我希望动画(如果在用户设备上启用)创建一个新的“窗口”并在整个屏幕之间进行转换
-
据我所知,您可以在片段之间进行转换:developer.android.com/reference/android/app/…, int, int, int)
-
是的,但不是在整个“窗口”之间。我需要使用不同的活动,是的。
-
抱歉,在您使用 FLAG_ACTIVITY_CLEAR_TOP 启动 AllBooksActivity 后,BookDetailActivity(Book 1)如何仍然存在。它应该消失了。实际上,当您启动该 Intent 时,您的所有活动都应该完成,并且应该创建一个新的 AllBooksActivity 实例(除非该活动具有 launchMode="singleTop"
标签: android android-intent navigation back-stack