В Android, если вы хотите очистить текущий стек Activity
и запустить новый Activity
(например, выйти из приложения и запустить журнал Activity
), похоже, есть два подхода.
Есть ли какие-либо преимущества для одного над другим, если ваш целевой уровень API выше 16?
1) Финитировать сродство
Вызов finishAffinity()
из Activity.
Activity.finishAffinity
2) Флаги намерения
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
Подход finishAffinity()
подходит для >= API 16.
Подход флагов Intent
подходит для >= API 11.
Чтобы быть ясным, для очистки текущего стека Activity
оба подхода выглядят одинаково одинаково. Мой вопрос в том, есть ли проблемы с тем, что люди испытали и, следовательно, есть ли какие-либо причины выбрать один над другим?