Вызов finish() не завершает действие

Я хочу закончить свою деятельность, когда она приостанавливается по определенным причинам. До недавнего времени мой код работал отлично, но недавно finish() метод почему-то перестал выполнять свою работу. Кроме того, когда finish() вызывается метод, я получаю следующее LogCatсообщение:

12-31 18:01:23.445: W/ActivityManager(481): Duplicate finish request for ActivityRecord{42465370 u11 "myapplicationpackage"}

может кто-нибудь помочь мне с этим?

OnPause() метод

@Override
protected void onPause() {
    super.onPause();
    finish();
}

2 ответов


вы можете проверить, если ваша деятельность уже заканчивая вызовом if (isFinishing()){}, а вызов finish только если это не так. кроме того, вы, возможно, захотите, чтобы указать android:noHistory="true" о вашей деятельности в файле манифеста, который фактически завершит вашу деятельность, как только пользователь перейдет от него.


у вас, скорее всего, есть дубликаты выполняемой операции. Я предлагаю сделать все действия под одним родителем и использовать

finishall()