(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
答案 0 :(得分:2)
关闭活动时使用finish()方法。
如果用户按下系统后退按钮onBackPressed()方法,那么。
答案 1 :(得分:2)
差异
根据活动文档:
当活动检测到用户按下后退键时调用。默认实现只是完成当前活动,但您可以覆盖它以执行任何操作。
当用户按下后退按钮时会触发此方法。按下此按钮时,此方法可以覆盖以执行特殊操作。默认情况下,此方法的实现调用finish方法。
在您的活动完成后调用此选项并应关闭。 ActivityResult会传播回通过onActivityResult()
启动您的人
此方法完成活动。它没有特别调用用户事件。当您要关闭活动时,请调用此方法。不应该覆盖此方法。
在您的情况下
您希望完成该应用,因此您必须使用finish()
。如果要模拟用户按下后退按钮,请使用onBackPressed()
。
答案 2 :(得分:1)
onBackPressed()
默认调用finish()
。使用finish()
只是因为它要关闭Activity
,你想要实现哪个动作,没有人点击“物理”(或屏幕)后退按钮。
将来这可能会有所帮助 - 识别用户按下按钮的时间,可能是某些Toast
或预防Dialog
?