Подтвердить что ты не робот

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

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

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

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

Действие 'B' содержит - Вы хотите выйти? Кнопка "Да" и "Без кнопки".

Если я дам финиш(), нажмите кнопку - он выйдет из "B'Activity". Я хочу закончить "B" и "A".

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

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

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

4b9b3361

Ответ 1

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

 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();

         }
     }
}

Ответ 2

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

Ответ 3

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

В Родительском...

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

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

@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() для дочерней активности, она также завершает родительский учет.