【发布时间】:2012-09-10 20:14:24
【问题描述】:
好吧,我有 2 个活动,比如 A 和 B,用户在它们之间像疯了似的 A 然后去 B 然后 A 等等,现在我不希望通过 A 的所有“层”拉回家的正常行为和B.
我希望如果用户在 A 中,它会返回主页,如果他在 B 中,他会返回 A,并且我希望尽可能传统和系统友好地执行此操作 - 这意味着我不想要填充我的 Activity 堆栈的解决方法,我也不想在新任务上启动 Activity。
我已尝试在活动 A 上使用 android:clearTaskOnLaunch="true",并且据记录,这似乎是最好的做法,但它没有提供记录的行为 - 它的行为与没有它时的行为相同...
你有什么建议?
【问题讨论】:
-
只需在 B 中调用
finish()以便它在启动 A 后自行终止。 -
在 B 的代码的 startActivity(A) 之后?
-
我认为solution to a very, very recent question 将适用于此,并且可能是最好的解决方案。如果 B 使用这个标志从 A 开始,那么 A 会重新开始,“back”不会返回到 B。
-
@OfekRon :是的,完全正确。
-
@OfekRon :这实际上取决于您需要的行为。如果不再需要
Activity开始另一个Activity并且通过调用它,Activity将经历其所有生命周期阶段,则调用finish()是完全可以接受的。基本上onPause()、onStop()和onDestroy()会被调用,Activity会被正常清理。
标签: android android-activity activity-stack