Android-активность вызова и возврата результата - PullRequest
3 голосов
/ 10 января 2012

У меня есть 3 действия A, B и C
Поток: Деятельность A вызывает B, B Вызов C. (A -> B -> C)
Сейчас я нахожусь в действииC и хочет вернуть какой-то результат в действие A без участия B. Сценарий: «Деятельность B должна вызываться только через A (если пользователь нажимает кнопку« Назад »из C, B не будет вызывать, а действие A будет впереди).Любой, кто-нибудь, дайте мне знать, как справиться с этой ситуацией.

Обновление:

Я вызываю деятельность B от A

Intent intent = new Intent(this, B.class);
            startActivityForResult(intent, 0);

так же, как я звоню C изБ.

В А я уже ехал onActivityResult метод

Ответы [ 4 ]

2 голосов
/ 10 января 2012
  • запустить ActivityB как StartActivityForResult из ActivityA.
  • В методе onCreate () запустите ActivityC как StartActivityForResult из ActivityB. Don't finish ActivityB.
  • Из ActivityC, когда работа сделана set the result.
  • В ActivityB, когда вы получите результат в OnActivityResult(), установите результат в ActivityA и завершите ActivityB.
  • Из ActivityC переопределить onBackPressed(), установить нулевой результат и завершить ActivityC
1 голос
/ 10 января 2012

Это простой способ сделать

в Активности C

Intent i=new Intent(getApplicationContext(), A.class);
i.putExtra("id", id);
startActivity();

On backBtn Event

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
       Intent i=new Intent(getApplicationContext(), A.class);
       i.putExtra("id", id);
       startActivity();
        return true;
    }

    return super.onKeyDown(keyCode, event);
}
1 голос
/ 10 января 2012

Я думаю, вам нужно позвонить Activity C from B by startActivityForResult(), а затем в Activity B override onActivityResult() and put finish();Также из Activity A start Activity B by startActivityForResult() Это будет перенаправлено на действие А без его создания.

1 голос
/ 10 января 2012

вызов метода finish () после вызова startActivity к C в операции B

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