finish(); 和 onBackPressed(); 之间的区别

6

(finish())和(onBackPressed())在程序中结束Activity的方式有什么区别?

当需要在执行命令(intent)后关闭Activity时,使用命令(finish)或使用命令(onBackPressed)更好呢?

Intent intent = new Intent ();
intent.putString("name", "Your Name");
 setResult(RESULT_OK,intent);
 onBackPressed();

或者这样更好
Intent intent = new Intent ();
intent.putString("name", "Your Name");
setResult(RESULT_OK,intent);
finish();

1
你有没有努力阅读文档 - vincrichaud
3个回答

6
区别 根据Activity文档: OnBackPressed会在用户按下后退键时被调用,其默认实现只是结束当前活动,但您可以重写此方法以进行特殊处理。该方法通过调用finish方法来关闭当前Activity。 finish方法用于关闭Activity,不需要特定的用户事件触发。当您想要关闭Activity时,请调用此方法。该方法不能被覆盖。 在您的情况中
您想要使应用程序关闭,因此必须使用finish()。如果想要模拟用户按下了返回按钮,请使用onBackPressed()方法。

1

onBackPressed() 默认情况下会调用 finish() 方法,如果您不重写此方法。使用 finish() 只是因为它旨在关闭 Activity,您想要实现的操作,没有人点击了“物理”(或屏幕上的)返回按钮。

将来可能会有帮助-识别用户按下按钮的时间,也许是为了一些 Toast 或预防性 Dialog


0

结束活动时,请使用finish()方法。

如果用户按系统返回按钮,在此时将调用onBackPressed()方法。


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