Из документации для Android:
FLAG_ACTIVITY_CLEAR_TASK
Если задано в Intent, переданном Context.startActivity(), этот флаг будет вызвать любую существующую задачу, которая будет связана с перед тем, как начать работу. То есть, деятельность становится новым корнем другой пустой задачи, и любой старый мероприятия завершены. Это можно использовать только в сочетании с FLAG_ACTIVITY_NEW_TASK.
и
FLAG_ACTIVITY_TASK_ON_HOME
Если задано в Intent, переданном Context.startActivity(), этот флаг будет заставляют новую задачу запуска размещаться поверх текущего дома (если есть). То есть, отступая от задачи всегда будет возвращать пользователя на дом, даже если это не последний которую они видели. Это можно использовать только в сочетании с FLAG_ACTIVITY_NEW_TASK.
Рассмотрим эти два фрагмента:
Intent intent = new Intent(this, Activity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
и
Intent intent = new Intent(this, Activity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME);
startActivity(intent);
Как я понимаю, в любом фрагменте кода мы создаем новую задачу, в которой есть только Activity, и когда вы нажимаете назад, вы переходите на главный экран. Предполагая, что я, вероятно, ошибаюсь, каковы различия между ними? Кроме того, если бы у меня был другой фрагмент с Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME | Intent.FLAG_ACTIVITY_CLEAR_TASK
, как это будет выглядеть?