对Android开发者有个问题。在过去的几个月里,我参加了udacity android初学者课程,有一个同学告诉我,当我开始一项新的活动时,我应该根据自己的意愿调用finish()
方法。我在google上搜索了一下开发人员的文档,试图发现他从哪里学到了这个方法,以及文档中关于调用它的内容,但我只能找到它是如何工作的一般性解释,而不能找到什么时候调用它以及为什么调用它。
我知道内存中的堆栈是什么,他提到要清除堆栈,但我读过android自己处理,我们不需要担心它。我在Stack Overflow上检查了另一个问题,这个问题与我所问的类似,但并没有完全回答这个问题:我需要根据我的意图显式地调用finish()
方法还是android处理这个问题?如果我确实需要调用finish()
,那么调用它的最佳实践是什么?作为参考,如果我的问题由于某种原因不清楚,这里是我的应用程序中的一些示例代码和alink to the GitHub repo:
Intent nextIntent= new Intent(OtherActivity.this, MainActivity.class);
startActivity(nextIntent);
finish();
最佳答案
如果您调用finish()
,android会将您的活动从活动堆栈中取出。如果不调用它,活动将保留在堆栈中,如果按Android手机上的后退按钮,默认行为是Android将弹出堆栈顶部的活动。当然,您可以覆盖后退按钮功能。对活动调用finish最常见的用法是当您不想返回到此活动时,例如,如果您有一个启动屏幕活动。当你离开它的时候,你会想叫它完成。其他用例完全依赖于特定于应用程序的导航层次结构和性能目标。
关于java - 使用finish()手动“结束” Activity :到还是不到?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49240664/