Android:何时使用finish()方法结束类?

7

我经常看到以finish()结尾的类示例,但并非总是如此。我的问题是:何时应该以finish()结束一个类?它确切地做了什么,以finish()结束一个类和使用后退按钮结束一个类之间有什么区别?

提前感谢!

5个回答

9

finish()方法可以用来关闭(销毁)一个Activity实例。在很多情况下,如果你不需要手动关闭你的Activity,就不需要调用这个方法。

但是如果你需要在Activity中添加一个名为“关闭”的按钮,那么你就应该使用这个方法。但是通常情况下,Android的后退按钮行为会处理这些事情。

后退按钮实际上并不会结束你的Activity,finish()方法会立即调用onDestory()方法,而后退按钮则不会。

当后退按钮被按下时,会调用onStop()方法,但是系统可能会延迟调用onDestory()方法,以便系统可以通过恢复Activity来节省资源,这比完全重新启动要更加经济实惠。

生命周期: http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

Finish()方法: http://developer.android.com/reference/android/app/Activity.html#finish()


2

使用finish的一个原因是当您已经使用startActivity()启动了活动并且想要在用户完成该活动后返回到调用方时。

void android.app.Activity.startActivityForResult(Intent intent, int requestCode)

在这种情况下,您不需要使用另一个startActivity返回启动它的Activity,而是使用finish。

2
你需要在特定的时刻立即结束 Activity 时,使用 finish() 方法来完成 Activity 类。如果你按下返回按钮,则会自动通过生命周期( onPause() onStop()然后 onDestroy() )。请注意保留HTML标记,但不要加入解释。

1

public void finish ()

当您的活动完成并应该关闭时,请调用此函数。ActivityResult将通过onActivityResult()返回给启动您的人。

finish()被调用以在您对活动执行完必要操作后终止活动实例。之后,您就无法再使用该活动。因此,只需调用finish()即可终止您的活动。

如果按下返回按钮,则会自动调用finish()以终止活动。它将通过活动lifecycleonPause()onStop()和最终的onDestroy())进行处理。

调用finish()的一个原因是,如果您不调用它,在导航过程中,所有活动都将添加到后退堆栈中。因此,当您返回时,必须通过这些活动返回。例如,当您单击返回按钮时,它只是终止活动并从后退堆栈中删除它。


1

返回按钮会带您回到堆栈中的上一个活动,而finish()则会销毁当前活动。您可以在不希望用户返回的活动上调用finish()。例如:LoginActivity


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接