Почему код результата активности отличается от ожидаемого - PullRequest
0 голосов
/ 16 июня 2010

У меня есть 2 мероприятия.В дочерней активности я добавил что-то подобное в onPause ():

if (isFinishing()) {
 final Intent intent = new Intent();
 intent.putExtra(SOME_DATA, value);

 setResult(RESULT_OK, intent);
 Log.i("test", "Result set to RESULT_OK");
}

В родительской активности я проверяю resultCode, когда дочерняя активность уничтожается, и вот что я заметил:

  1. Если я уничтожаю дочернюю активность каким-либо действием (в некоторых условиях я вызываю finish ()), то resultCode будет RESULT_OK
  2. Но когда я уничтожаю, нажимая клавишу возврата (я работаю только в эмуляторе, поэтому его ESC), которыйубивает активность, после чего readCode, считанный в родительском методе onActivityResult, равен 0 (RESULT_CANCELD).

В каждом случае чтение "тестового" журнала одинаково.

Ответы [ 2 ]

2 голосов
/ 16 июня 2010

Вам не нужно устанавливать код результата в методе onPause. Вы можете установить его, как только получите данные. Просто устанавливайте код результата каждый раз, когда данные, которые вы хотите передать обратно в ваше первое действие, изменяются, и затем он должен вернуться к вызывающему действию правильным способом.

2 голосов
/ 16 июня 2010

Скорее всего, то, что разрушает вашу активность, сбрасывает результат после вызова onPause к RESULT_CANCELED.Это имеет смысл, так как действие не закончилось счастливо.

Чего вы пытаетесь достичь, всегда устанавливая код результата в RESULT_OK?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...