Как завершить родительское действие из дочернего действия

Я новичок в разработке Android.

Я создал основное действие (- >A), которое имеет 4 кнопки. Одна из 4 кнопок-кнопка выхода.

Я начинаю другое действие (- >B), по щелчку кнопки выхода. Это открывает ''Activity Б через намерение из'Activity.

Activity' B ' содержит - вы хотите выйти? Да-Кнопка & Нет-Кнопка.

Если я дам finish (), onclick кнопки - он выходит из " B " Activity. Я хочу закончить "Б" & "А".

Я даже пробовал A. finish() -> это не распознается и приводит к синтаксической/семантической ошибке.

буду признателен за помощь.

P. S: Я использую телефон версии Android-2.2, и мне не нравится использовать ActivityManager для решения этой проблемы.

3 ответов


попробуйте запустить дочернюю активность с

 startActivityForResult(intent, REQUEST_EXIT);

в детской деятельности

case R.id.quit:
     setResult(RESULT_OK, null);
     finish();

в родительской активности

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == REQUEST_EXIT) {
         if (resultCode == RESULT_OK) {
            this.finish();

         }
     }
}

использовать startActivityForResult() на Действие A для запуска активности B и onActivityResult() в просто finish() активность A. В активности B на кнопке нажата просто finish() Действие B.


вы можете закончить родительскую активность из дочерней активности...

В Родителя....

 startActivityForResult(new Intent(Parent.this, Child.class), ACTIVITY_CONSTANT);

и переопределить OnActivityForResult(...) метод в родителе .

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == ACTIVITY_CONSTANT)
    {
        finish();
    }
}

когда вы вызываете finish () для дочернего действия, он также завершает Родительский.