【问题标题】:Android back button problem安卓返回键问题
【发布时间】:2011-07-07 10:17:43
【问题描述】:

假设我的应用程序中有 3 个活动:A、B 和 C。应用程序的流程是:A -> B -> C。

一旦在 C,按下后退按钮会将用户带到 B。如果用户再次按下后退按钮,他们会到达 A,最后如果他们再按下一次,他们就会退出应用程序。

目标:当用户按下C上的返回键时,应该去A而不是 B,再按一次就退出应用。

问题:当覆盖 Activity C 上的后退按钮以启动 Activity A 时,一切似乎都正常。但是,如果用户再次按下后退按钮,他们会返回到 Activity C。因此按下后退按钮只会在 Activity A 和 Activity C 之间切换。

我猜 Activity 堆栈看起来像:

  • 打开应用:A
  • 转到 B:A、B
  • 转到 C:A、B、C
  • 按回:A、B、C、A
  • 按回:A、B、C
  • 按回:A、B、C、A
  • 按回:A、B、C
  • 按回:A、B、C、A
  • 按回:A、B、C
  • 按回:A、B、C、A
  • ...等

所以看起来错误是在按下 C 上的后退按钮时启动一个新的 Activity?无论如何,我可以就如何实现这种行为提出建议。

谢谢, 杰克

【问题讨论】:

    标签: android button back


    【解决方案1】:

    您可以在活动B的onStop()方法中添加finish()

    这样,当activity B 将不再可见时,它将被销毁并从堆栈中移除。

    • 打开应用:A
    • 转到 B:A、B
    • 转到 C:A、C
    • 按回:A
    • 按回:退出

    【讨论】:

      【解决方案2】:

      当您从活动 B 转到活动 C 时,先完成活动 B,然后再进行活动 C。

      例如:-

      finish();
      Intent i2 = new Intent(Acttivity.B, Acttivity.C);
      startActivity(i2);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-07
        • 2018-07-03
        • 2014-02-19
        • 2011-06-12
        • 2016-05-04
        • 1970-01-01
        相关资源
        最近更新 更多