【问题标题】:Changing Actiivity Stack Behavior更改活动堆栈行为
【发布时间】: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


【解决方案1】:

如果您在 B 启动 A 之后在 B 中使用 finish(),那么 B 将自行终止...

startActivity(new Intent(this, ActivityA.class));
finish();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多