我不确定在这里发布什么代码。基本上我有这些活动:
主要流程如下:
A - >乙 - >一种 - > C - >一种
从B导航 - > A或C - > A我也调用了finish()方法,因为我不想让任何后退按钮导航到这些屏幕。
然而我现在遇到的问题是,当您按照主流程并登陆活动A然后单击Android后退按钮时,它只会刷新活动A. 在导航之前只需点击几下即可在应用程序之外。
这里有什么建议吗?这似乎与您在登录活动A之前进行的活动数量相关,但我不知道如何调试或修复它。
答案 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