У меня есть 3 действия:
- LoadingInfoActivity (A)
- LoadingScanActivity (B)
- ReasonForSkipActivity (C)
Вот требуемый рабочий процесс:
- A запускает B для результата
- B запускает C для результата
- C завершается и возвращает результат в B
- B onActivityResult () метод получает возвращаемое значение из C
- 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
}
}
Если есть какая-то документация или что-то, что я пропустил, я был бы признателен за указание в правильном направлении, почему это не работает.