2015-05-09 2 views
1

У меня есть приложение, которое вызывает startActivityForResult для запуска второго действия. Второе действие имеет метод, называемый при нажатии кнопки, который вызывает setResult(), а затем завершает(), если выполняется конкретное условие, но если это не так, то он выполняет некоторую дополнительную обработку.Android: does finish() включает неотъемлемое возвращение?

Другими словами:

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

Нужно ли мне иметь возвращение после финиша() в первом случае блок, или же закончить() действовать, как будто есть врожденная геЬигп там?

ответ

0

Если вы сохраните свой код, вам нужно будет вернуть доход после finish() внутри if, потому что метод будет выполнен до конца.

Лучше изменить свой метод следующим образом:

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

Я не знаю, что код «лучше», но длинные и короткие его в том, что 'послевкусие();' не вызывает остальная часть метода прекратит выполнение. Таким образом, вы можете поставить явный оператор 'return;' после вашего 'finish();', или вы можете использовать блок 'else', как вы предложили. В любом случае. –