我还没有真正理解活动和堆栈的处理。 我有3个活动,A - 一个闪屏,B-菜单和C另一个活动。我开始启动并在菜单启动后退出一段时间。 在代码中我处理它们都是这样的:
startActivity(new Intent(this, ContactInfoMenu.class));
finish();
现在,如果我启动应用程序并进入A-B-C,当我在C屏幕中点击“返回”时,我会跳回B-菜单。另一个“Back”退出应用程序,就像我想要的那样。 但是..如果我去A-B-C-B-C - C屏幕中的“后退”按钮退出整个应用程序而不是让我回到B屏幕?
为什么?它确实在我的所有“子屏幕”中都是这样,我只能输入一次,如果我第二次输入它们,“返回”按钮退出应用程序。我还没有试图在任何地方抓住“后退”行动?当我开始一项新活动时,我不应该总是叫“结束()”吗?
此致
答案 0 :(得分:5)
完成有利于离开当前活动并返回上一个活动。否则,如果可以帮助,请尽量避免调用finish()。
当您启动一个更好地确定该活动在堆栈上的行为的活动时,您可以传递一组标志。其中包括:
可以在清单中设置其中许多标志。阅读它们可以让您更好地了解“Android Way”。
答案 1 :(得分:4)
基本上,每次去另一项活动时,您都不需要致电finish()
。如果系统内存不足,它将自行关闭您的活动实例。
答案 2 :(得分:1)
finish()
。在这种情况下,您可能需要完成第一项活动。
但是如果你需要在视图之间进行混洗,则不能使用finish()函数,因为它会导致整个应用程序finish
。
尝试在您的视图中使用您自己的back
按钮在各种活动之间切换,您可以转移到应用程序的任何其他活动,甚至转移到Main Screen
。