Как закрыть activity по названию?

Andro

У меня есть activity A-B-C-D-E

Мне нужно закрыть activity CDE когда пользователь перешел из E в B. Тобишь пользователь открывает C D E после переходит в B и в этот момент нужно закрыть CDE.

Должны остаться A B. Если пользовател в C или в D то ничего закрывать не нужно

P.S. Прочитал свой вопрос и вспомнил задачки по информатике))

1 ответ

Andro

Если пользователь переходит "из Е в В", то это значит, что B запускается Intent'ом. Добавьте флаг Intent.FLAG_ACTIVITY_CLEAR_TOP:

Intent a = new Intent(this, B.class);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(a);

For example, consider a task consisting of the activities: A, B, C, D. If D calls startActivity() with an Intent that resolves to the component of activity B, then C and D will be finished and B receive the given Intent, resulting in the stack now being: A, B.

Сразу обратите внимание, что новый интент придет в onNewIntent(), а getIntent() будет возвращать интент, которым активити была запущена первый раз.

licensed under cc by-sa 3.0 with attribution.