У меня есть три действия A, B и C. Из действия A я могу вызвать активность B и из B, я могу позвонить C, и я могу напрямую вызвать активность C из активности A.Android Конкатенация onActivityResult() не срабатывает
Дело в том, что при возврате результата от C непосредственно к методам A-setResult и onbackpressed все работает нормально. Проблема возникает, когда из активности CI возвращает результат в B, а в его onActivityResult я вызываю еще раз setResult и пересылаю тот же результат в действие A.
Активность A снова появляется, но в этом случае его onActivityResult никогда срабатывает.
Есть код.
В деятельности C:
if (selection) {
setResult(RESULT_OK, data);
} else {
setResult(RESULT_CANCELED, data);
}
selection = false;
super.onBackPressed();
В деятельности B получить результат Ĉ и попытаться передать его обратно деятельности A
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (resultCode) {
case RESULT_OK:
setResult(RESULT_OK, data);
onBackPressed();
break;
case RESULT_CANCELED:
if (list_search != null && !list_search.getAdapter().isEmpty()) {
list_search.setSelection(data.getIntExtra("position", 0));
}
break;
}
И Херес onActivityResult. Я получаю результат, если он исходит из B или из C, но его единственный запуск при прямом доступе от C., когда он проходит через B, появляется A, но не запускается onActivityResult, поэтому я не могу получить данные в этом случае.
общественного недействительными OnActivityResult (интермедиат requestCode, внутр ResultCode, Намерение намерение) {
....
переключатель (ResultCode) {
case RESULT_CANCELED:
sincronizaCursorArticulos(intent.getStringExtra("cd_articulo"));
break;
case RESULT_OK:
sincronizaCursorArticulos(intent.getStringExtra("cd_articulo"));
fragment_order_entering.setEtArticulo(intent.getStringExtra("cd_articulo"));
fragment_order_entering.loadArticulo(false);
break;
Большое спасибо заранее.