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

标签 java android

以编程方式结束 Activity 的 (finish()) 和 (onBackPressed()) 之间有什么区别???

我想在一个命令(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();

最佳答案

差异

根据 Activity 文档:

OnBackPressed

Called when the activity has detected the user's press of the back key. The default implementation simply finishes the current activity, but you can override this to do whatever you want.

当用户按下后退按钮时触发此方法。按下此按钮时,可以覆盖此方法以执行特殊操作。默认情况下,此方法的实现调用 finish 方法。

finish

Call this when your activity is done and should be closed. The ActivityResult is propagated back to whoever launched you via onActivityResult()

此方法完成 Activity 。它不是专门针对用户事件调用的。当你想关闭一个 Activity 时调用这个方法。不应覆盖此方法。


你的情况

你想让应用程序完成,所以你必须使用 finish()。如果您想模拟用户按下后退按钮,请使用 onBackPressed()

关于java - finish(); 之间的区别和 onBackPressed();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50046201/

相关文章:

java - WindowBuilder 不允许 JPanel 中的所有布局

java - 如何仅从键盘获取整数输入,如果输入无效,如何再次询问用户?

java - 尝试将 flyway 用于多个数据库实例

java - 覆盖继承字段的 Gson 错误 "declares multiple JSON fields named"

android - Google Play 服务任务 API : can a Task be cancelled

java - 哪个类加载器用于组合类

android - 使用 Android 兼容库查找错误的 fragment 类

android - 如何使 Activity 背景透明和模糊背景

android - 使用 DexClassLoader 与动态加载的库交互

android - 从 Google Play 下载时出现 ClassNotFoundException