Android后退按钮无法导航,只是刷新活动

时间:2014-09-09 00:38:23

标签: android activity-lifecycle

我不确定在这里发布什么代码。基本上我有这些活动:

  • 活动A(列表)
  • 活动B(添加新项目)
  • 活动C(项目明细)

主要流程如下:

A - >乙 - >一种 - > C - >一种

从B导航 - > A或C - > A我也调用了finish()方法,因为我不想让任何后退按钮导航到这些屏幕。

然而我现在遇到的问题是,当您按照主流程并登陆活动A然后单击Android后退按钮时,它只会刷新活动A. 在导航之前只需点击几下即可在应用程序之外。

这里有什么建议吗?这似乎与您在登录活动A之前进行的活动数量相关,但我不知道如何调试或修复它。

2 个答案:

答案 0 :(得分:2)

你的声明,从B导航到A你是"也是"调用finish()表示B正在发布一个新的A.如果是这样,那就是问题所在。如果您的活动堆栈如下所示:

B
A

...并且B启动了一个新的A然后调用finish(),你的活动堆栈看起来像这样:

A
A

按下后退按钮后,它可能会显示为"刷新"答:事实上,它会向你显示不同的A副本,直到你到达堆栈的底部并最终退出应用程序。为了获得预期的行为,B应该在不启动A的新副本的情况下调用finish()

答案 1 :(得分:0)

实际上后退按钮会自动调用finsh()。 我猜你在完成B或C之前已经启动了新的Activity A.你可以调用一些方法,比如navigateUpFromSameTask()。确保你在manifest中设置了父Activity