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

时间:2018-04-26 14:57:07

标签: java android

(finish())和(onBackPressed())以编程方式结束活动有什么区别???

我想在命令(意图)之后关闭活动是否最好通过命令(完成)或使用命令(onBackPressed)关闭它

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

或更好

move /Y "C:\TestNoPersmissions" "E:\somedestination"
echo %errorlevel%
if errorlevel 1 goto Failure
if errorlevel 0 goto Success

:Failure
eventcreate /t error /id 100 /so TestMove /l application /d "Move product XML failure" 
echo Error!

:Success
echo "Success"
pause

3 个答案:

答案 0 :(得分:2)

关闭活动时使用finish()方法。

如果用户按下系统后退按钮onBackPressed()方法,那么。

答案 1 :(得分:2)

差异

根据活动文档:

OnBackPressed

  

当活动检测到用户按下后退键时调用。默认实现只是完成当前活动,但您可以覆盖它以执行任何操作。

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

finish

  

在您的活动完成后调用此选项并应关闭。 ActivityResult会传播回通过onActivityResult()

启动您的人

此方法完成活动。它没有特别调用用户事件。当您要关闭活动时,请调用此方法。不应该覆盖此方法。

在您的情况下

您希望完成该应用,因此您必须使用finish()。如果要模拟用户按下后退按钮,请使用onBackPressed()

答案 2 :(得分:1)

如果您不重写此方法,

onBackPressed()默认调用finish()。使用finish()只是因为它要关闭Activity,你想要实现哪个动作,没有人点击“物理”(或屏幕)后退按钮。

将来这可能会有所帮助 - 识别用户按下按钮的时间,可能是某些Toast或预防Dialog