Как закончить родительскую активность из дочерней деятельности
Я новичок в разработке Android.
Я создал основное действие (- > A), которое имеет 4 кнопки. Одна из 4 кнопок - кнопка EXIT.
Я запускаю другое действие (- > B), щелкнув кнопку EXIT. Это открывает "B'Activity" с намерением "A'Activity".
Действие 'B' содержит - Вы хотите выйти? Кнопка "Да" и "Без кнопки".
Если я дам финиш(), нажмите кнопку - он выйдет из "B'Activity". Я хочу закончить "B" и "A".
Я даже попробовал A.finish() → это не распознается и приводит к синтаксису/семантической ошибке.
Я был бы признателен за помощь здесь.
P.S: Я использую телефон версии Android 2.2, и я не люблю использовать ActivityManager для решения этой проблемы.
Ответы
Ответ 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() для дочерней активности, она также завершает родительский учет.