Intereting Posts
Поддерживает ли Android поддержку нескольких языков? Android Browser textarea прокручивается повсюду, непригодна для использования Android с автоматической горизонтальной прокруткой TextView Получить / выбрать изображение из встроенного приложения Gallery от Google Отключение полноэкранного редактирования для ввода мягкой клавиатуры в альбомной ориентации? «Ошибка com.android.exchange.ExchangeService утечка …» при запуске эмулятора Как создать экземпляр меню программно? Т.е. раздуть меню снаружи onCreateOptionsMenu Ошибка компиляции студии Android «Содержимое не допускается в прологе» Объяснение о controltransfer в android для настройки связи USB Создание многострочного EditText программно Устройства Motorola: org.threeten.bp.DateTimeException при анализе даты в ThreeTen VideoView не запускается, когда невидимый Удалить кнопку «Готово» в ActionMode Как импортировать библиотеку материалов в Android Studio? Как поддерживать арабский текст в Android?

Очистить активность Стек и начать новую активность в android

Мой вопрос немного отличается от этого типа вопроса. Мне нужно удалить или очистить свой стек активности, а затем запустить новое действие. Я не думаю, что это проблема с clear_top. Я объясняю примером:

Мой поток активности:

Login > Home > Screen1 > screen2 .... 

Я завершаю активность входа или звоню с флагом no_history. Итак, мои действия выглядят так

 Login(finished)> Home [bottom of the stack now] > Screen1 > Screen2[top of the stack] 

Мне нужно обработать ошибку сеанса. Если какая-либо ошибка сеанса возникает в любой точке, мне нужно вернуться к активности входа. Но помните, что у меня нет активности входа в стек. Так что clear_top не будет работать.

Если в Screen2 возникает какая-либо ошибка сеанса, тогда мне нужно очистить полный стек (screen2, screen1, home), а затем начать активность входа. Чтобы после нажатия кнопки нажать в активности входа, закройте мои приложения.

Есть ли способ очистить стек активности?

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

Solutions Collecting From Web of "Очистить активность Стек и начать новую активность в android"

Использовать это

 Intent i = new Intent(yourScreen.this,Home.class); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); i.putExtra("EXIT", true); startActivity(i); 

И в onCreate класса Home, сделайте это, чтобы проверить,

 if (getIntent().getBooleanExtra("EXIT", false)) { Intent i = new Intent(Home.this,Login.class); startActivity(i); finish(); } 

Что это будет по существу делать независимо от того, какая вы активность, вы можете вызвать домашний экран с четким верхним флагом. На главном экране есть условие проверки в методе onCreate, которое поможет очистить стек и перейти на экран входа в систему. Теперь на экране входа в систему, если вы нажмете кнопку «Назад», вы выйдете из приложения, когда стек очищается ..

Дайте мне знать, если проблема все еще сохраняется …

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

Вы должны запустить активность входа с флагами: Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK – флаг NEW_TASK может иметь немного запутывающее имя, но он фактически создаст новую задачу, только если она не существует (в противном случае текущая задача будет использоваться) – и CLEAR_TASK очистит его от всех предыдущих действий.

Попробуй это,

Завершите свою текущую деятельность

  YourCurrentActivity.this.finish(); Intent intent1 = new Intent(YourCurrentActivity.this,LoginActivity.class); intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent1); 

Он будет работать, даже если ваша деятельность не находится в стеке.

Надеюсь, поможет.

Используйте onActivityResult () для управления действиями в этом сценарии.