6

我经常看到以 结尾的类的例子finish(),但绝对不是总是这样。我的问题是你应该什么时候结束课程finish()?它到底做了什么,用后退按钮结束课程和用 结束课程有什么区别finish()

提前致谢!

4

5 回答 5

9

finish()可以调用来杀死(销毁)一个 Activity 实例。如果您不需要关闭 Activity 手册,这在很多情况下都是如此,则无需调用此方法。

但是,如果您需要在活动中某处显示“关闭”的按钮,那么您应该使用此方法。但总的来说,Android 中的后退按钮行为会处理这样的事情。

后退按钮实际上并没有完成您的活动,而是立即finish()调用该onDestory()方法,而后退按钮则没有。

当按下后退按钮时, onStop()方法被调用,但是onDestory()方法调用可能会被系统延迟,这样系统就可以恢复 Activity,这比完全重启更便宜(在资源上)。

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

完成():http: //developer.android.com/reference/android/app/Activity.html#finish()

于 2012-10-16T10:03:27.143 回答
2

当您需要在特定点立即结束时,您可以使用方法完成Activity课程。如果您按下后退按钮,您将经历生命周期( ,然后自动。finish()ActivityonPause()onStop()onDestroy())

于 2012-10-16T10:05:50.117 回答
2

使用完成的一个原因是当您开始活动时

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

在这种情况下,您不会返回使用另一个 startActivity 启动它的 Activity,但使用完成

于 2012-10-16T10:05:58.410 回答
1

公共无效完成()

当您的活动完成并应该关闭时调用它。ActivityResult 被传播回通过 onActivityResult() 启动你的人。

finish()在您完成了与活动相关的操作后,调用它来杀死您的活动实例。之后,您将无法使用该活动。所以简单地打电话finish(),它会杀死你的活动。

如果您按下后退按钮,它将finish()自动调用以终止活动。它将经历活动生命周期(最后onPause()onStop()onDestroy()

调用finish() 的一个原因是,如果您不调用它,当您浏览活动时,所有活动都将被添加到后台堆栈中。所以当你回去的时候,你必须通过这些活动回来。因此,例如,当您单击后退按钮时,它只会终止活动并将其从后台堆栈中删除。

于 2012-10-16T10:09:37.223 回答
1

后退按钮将您带到堆栈中的最后一个活动,同时finish()销毁当前活动。您可以调用finish()您不希望用户返回的活动。示例:登录活动

于 2012-10-16T10:14:46.300 回答