Манипулирование задним стеком в Android - PullRequest
0 голосов
/ 01 июля 2018

`

public void SignOut(View view) {
        Intent intent = new Intent(getApplicationContext(), MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        finish();
    }

`У меня есть приложение для Android. Активности как -> A-> B-> C-> D-> Е. Деятельность A имеет страницу входа. Итак, при переходе к следующему занятию, то есть B, я не заканчиваю упражнение A. Стек растет следующим образом: A, B, C, D, затем действие D завершается и E запускается. В упражнении E у меня есть кнопка выхода. До сих пор мой стек: A, B, C, E. При нажатии выхода, E выскочил. Я хочу очистить стек активности на этом этапе и хочу начать свою первую деятельность, т. Е. Запрос на вход в систему. Я не могу этого достичь. Мой стек становится A, B, C, A после выхода. Я хочу, чтобы стек был только А. Пожалуйста помоги. Заранее спасибо.

1 Ответ

0 голосов
/ 01 июля 2018

Я решил проблему.

Наряду с вышеупомянутым кодом, внутри моего основного класса активности, в функцию onRestart () я добавил код:

getIntent().setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

Это гарантировало, что всякий раз, когда вызывается это действие, как в моем случае, оно вызывается из последнего действия. На этом этапе он уже находится либо в состоянии onPaused (), а затем в состоянии onStop (), если следующее действие полностью покрыло его, и оно будет перезапущено снова. На этом этапе очистите задний стек действия A (то есть все действия сверху A), если у него есть что-нибудь в стеке для нового старта.

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