общественности статической окончательный ИНТ FLAG_ACTIVITY_CLEAR_TOP
Если установлено, и активность запускаются уже работает в текущей задаче, то вместо запуска нового экземпляра, что деятельность, все другие действия поверх нее будут закрыты, и это намерение будет передано (теперь сверху) старой деятельности в качестве нового намерения.
Например, рассмотрите задачу, состоящую из действий: A, B, C, D. Если D вызывает startActivity() с намерением, который разрешает компонент активности B, то C и D будут завершены, а B получить данное намерение, в результате чего стек теперь равен: A, B.
В настоящее время исполняемый экземпляр действия B в приведенном выше примере будет либо получать новое намерение, которое вы начинаете здесь в его методе onNewIntent(), либо быть сам законченный и перезапущенный с новым намерением. Если он объявил свой режим запуска «множественным» (по умолчанию), и вы не установили FLAG_ACTIVITY_SINGLE_TOP
в том же намерении, он будет завершен и заново создан; для всех других режимов запуска или если установлено значение FLAG_ACTIVITY_SINGLE_TOP
, этот Intent будет доставлен в onNewIntent() текущего экземпляра.
Этот режим запуска также может быть использован для хорошего эффекта в сочетании с FLAG_ACTIVITY_NEW_TASK
: если он используется для запуска корневой активности задачи, он приведет к запуску текущего исполняемого экземпляра этой задачи на передний план, а затем очистит его до корневое состояние. Это особенно полезно, например, при запуске операции из диспетчера уведомлений.
Intent a = new Intent(this,A.class);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(a);
Для получения дополнительной информации смотрите here
Попробуйте это «намерение намерения = новое намерение (B.this, C.class) intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity (intent); ' – Raghunandan
Он не работает так, как вы хотите, потому что флаг' CLEAR_TOP' очистит любую активность, которая находится вверху запускаемой деятельности. В вашем случае 'C' запускается, и ничего не стоит над' C', потому что нет существующего экземпляра 'C'. Пожалуйста, внимательно прочитайте документацию. – Varun