Android:finish()是否包含固有的返回?

Android:finish()是否包含固有的返回?,android,Android,我有一个应用程序调用startActivityForResult来启动第二个活动。第二个活动有一个在按下按钮时调用的方法,该方法调用setResult,然后在满足特定条件时调用finish,但如果不满足,则执行一些额外的处理 换言之: public void clickOK(View V) { if (someBooleanCondition) { setResult(resultOne); finish(); } setResul

我有一个应用程序调用startActivityForResult来启动第二个活动。第二个活动有一个在按下按钮时调用的方法,该方法调用setResult,然后在满足特定条件时调用finish,但如果不满足,则执行一些额外的处理

换言之:

public void clickOK(View V) {
    if (someBooleanCondition)
    {
        setResult(resultOne);
        finish();
    }
    setResult(resultTwo);
    finish();
}

我是否需要在第一个if块中的finish之后调用return,或者finish的行为是否就好像那里有一个固有的return语句?

如果您将代码保存在if中,则必须在finish之后调用return,因为该方法将执行到底

最好将方法更改为:

public void clickOK(View V) {
    if (someBooleanCondition)
    {
        setResult(resultOne);
        finish();
    } else {
        setResult(resultTwo);
        finish();
    }
}

我不知道那个代码是否更好,但它的长短不一之处在于它的完成;不会导致方法的其余部分停止执行。所以你可以把一个显式的返回;完成后的声明;,或者你可以像你建议的那样使用else块。两种方法都有效。