Intereting Posts
Отправить и получить IQ XMPP ASMACK Android Разделитель Android / разделитель линии в макете? GridView внутри ExpandableListView с множественным выбором на Android Тип несоответствия: невозможно преобразовать из целого в boolean Передача объектов из объектов между действиями Переходы с разделяемыми элементами между представлениями (а не с действиями или фрагментами) Когда запущенная и связанная служба уничтожена? Как сохранить положение прокрутки RecyclerView с помощью RecyclerView.State? AndroidManifest.xml подразумевает vs явные разрешения (use-feature vs uses-permission) Очистка всех кэшированных элементов, созданных WebView? Android.view.InflateException при использовании selectableItemBackground Магазин приложений amazon и лицензирование Android ADB бросает SecurityException при запуске службы после обновления системы до Nexus 7: «Caller uid = 2000 не имеет права связываться с пользователем = -2» Разработка приложений Omniauth и Iphone / Android Не удалось добавить AndEngine в Android Studio

Очистить активность Стек и начать новую активность в 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 () для управления действиями в этом сценарии.