Цепочка вызовов onActivityForResult не возвращает ответ на исходное действие - PullRequest
0 голосов
/ 22 мая 2019

У меня есть 3 действия:

  1. LoadingInfoActivity (A)
  2. LoadingScanActivity (B)
  3. ReasonForSkipActivity (C)

Вот требуемый рабочий процесс:

  1. A запускает B для результата
  2. B запускает C для результата
  3. C завершается и возвращает результат в B
  4. B onActivityResult () метод получает возвращаемое значение из C
  5. B вызывает метод finish () для возврата к A

Однако, когда приложение достигает метода onActivityResult () для 'B', где Iвызовите финиш (), меня не возвращают к «А».Приложение остается в Деятельности B, даже если вызывается метод finish ().

LoadingInfoActivity startActivityForResult ()

 Intent scanLoad = new Intent(LoadingInfoActivity.this, 
 LoadingScanActivity.class);         
 startActivityForResult(scanLoad, SCAN_LOCATION);

LoadingScanActivity startActivityForResult ()

 Intent reason = new Intent(LoadingScanActivity.this, 
 ReasonForSkip.class);
 startActivityForResult(reason, GET_SKIP_REASON);

ReasonForSkip codeвернуться к предыдущему действию

 Intent data = new Intent();
 data.putExtra(REASON, reason);
 setResult(RESULT_OK, data);
 finish();

Метод LoadingScanActivity onActivityResult (Этот код запускается, но не перенаправляет меня обратно на метод onActivityResult LoadingInfo

if (requestCode == GET_SKIP_REASON){
   String reason = data.getStringExtra("Reason");
   Intent loadingInfo = new Intent();
   data.putExtra("CageSkip", "Y");
   data.putExtra("Reason", reason);
   setResult(RESULT_OK, loadingInfo);
   finish();
}

Метод LoadingInfoActivity onActivityResult (Мы никогда не достигаемэтот пункт)

if (requestCode == SCAN_LOCATION){
    if (resultCode == Activity.RESULT_OK) {
        String reason = data.getStringExtra("Reason");
        String skipped = data.getStringExtra("CageSkip");
        // Process results
    }
}

Если есть какая-то документация или что-то, что я пропустил, я был бы признателен за указание в правильном направлении, почему это не работает.

...