Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓后退按钮问题_Android_Button_Back - Fatal编程技术网

Android 安卓后退按钮问题

Android 安卓后退按钮问题,android,button,back,Android,Button,Back,假设我的应用程序中有3个活动:A、B和C。通过应用程序的流程是:A->B->C 一旦到了C,按下后退按钮将把用户带到B。如果用户在到达A时再次按下后退按钮,最后如果再次按下,则退出应用程序 目标:当用户按下C上的后退按钮时,他们应该转到A和而不是B,如果他们再次按下该按钮,他们将退出应用程序 问题:当覆盖活动C上的“后退”按钮以启动活动A时,一切看起来都正常。但是,如果用户再次按下后退按钮,他们将返回活动C。因此,按下后退按钮只是在活动A和活动C之间切换 我猜活动堆栈如下所示: 打开应用程序:

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

一旦到了C,按下后退按钮将把用户带到B。如果用户在到达A时再次按下后退按钮,最后如果再次按下,则退出应用程序

目标:当用户按下C上的后退按钮时,他们应该转到A和而不是B,如果他们再次按下该按钮,他们将退出应用程序

问题:当覆盖活动C上的“后退”按钮以启动活动A时,一切看起来都正常。但是,如果用户再次按下后退按钮,他们将返回活动C。因此,按下后退按钮只是在活动A和活动C之间切换

我猜活动堆栈如下所示:

  • 打开应用程序: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上的后退按钮时,启动一个新活动似乎是个错误?不管怎样,我需要一些关于如何实施这种行为的建议

谢谢, Jack

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

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

  • 打开应用程序:A
  • 转到B:A,B
  • 转到C:A,C
  • 按后退:A
  • 按后退:退出

当您进行活动B至活动C时,首先完成活动B,然后进行活动C

ex:-

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