Если мы используем этот код для запуска действия входа (A):
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
Это действие должно быть в стеке действий, в противном случае эти флаги не будут иметь никакого эффекта.
Если мы будем использовать finish () в операции входа в систему (A), после запуска операции (B) (чтобы избежать возврата к A из B) операция A (регистрация) не будет в стеке.Точно так же происходит, когда действие входа в систему имеет атрибут «noHistory» в качестве атрибута.
Итак, решение для меня было смесью других ответов:
Этот код входит в действие B, чтобывернитесь к операции входа в систему:
@Override
public void onBackPressed() {
moveTaskToBack(true);
super.onBackPressed();
}
И этот код входит в действие, которое вызывает функцию выхода из системы:
public static void logout() {
Intent intent = new Intent(activity, LoginMain.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}