Задание Не очищать из заднего стека даже из метода Intent.FLAG_ACTIVITY_CLEAR_TOP - PullRequest
2 голосов
/ 28 февраля 2020

Я хочу перейти к другому занятию, но прежде чем я хочу очистить все остальные занятия. Я знаю метод Intent.FLAG_ACTIVITY_CLEAR_TOP, но он не работает, когда я снова нажимаю после перемещения, тогда он снова показывает предыдущее действие. Мой код

 Intent intent = new Intent(LoginActivity.this, WelcomeActivity.class);
 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 startActivity(intent);
 progressDialog.dismiss();

Спасибо заранее

Ответы [ 3 ]

2 голосов
/ 28 февраля 2020

CLEAR_TOP работает, только если у вас одна вершина, означает только одно действие, поэтому вам также нужно добавить Intent. Очистить Задачу и Намерение. Новое задание с вашим кодом, которое выглядит следующим образом:

   intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
    Intent.FLAG_ACTIVITY_CLEAR_TASK |
    Intent.FLAG_ACTIVITY_NEW_TASK);
1 голос
/ 28 февраля 2020

Добавьте три флага:

 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
1 голос
/ 28 февраля 2020

Иногда это не работает, вы должны добавить эту строку в свой код

        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |Intent.FLAG_ACTIVITY_NEW_TASK | 
        Intent.FLAG_ACTIVITY_CLEAR_TASK);

Это поможет вам и, надеюсь, ваша проблема решится. Я добавил эту строку в ваш код, и после добавления этой строки ваш код будет выглядеть следующим образом

 Intent intent = new Intent(LoginActivity.this, WelcomeActivity.class);
 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
    Intent.FLAG_ACTIVITY_CLEAR_TASK |
    Intent.FLAG_ACTIVITY_NEW_TASK);
 startActivity(intent);
 progressDialog.dismiss();

Замените ваш код приведенным выше кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...