Как удалить всю активность в Stack при нажатии кнопки возврата

У меня есть список действий A-B -C -D-E и более, например, конечная активность – K. Я хочу очистить все эти действия в стеке, когда нажимаю кнопку BACK. Как я могу сделать ? На самом деле, я езжу

onBackPress(){ moveTaskToBack(true); finish(); } 

Но удаляется только текущая активность и выход приложения. Затем я возвращаюсь к приложению, он возобновляет работу до K. Я хочу, чтобы это начиналось с начала, когда я снова открывал приложение. Я думаю, причина здесь в том, что список действий в стеке все еще сохраняется, поэтому я хочу очистить весь стек, нажав кнопку BACK. Какие-либо предложения ? Большое спасибо !

Вы должны вызвать свою активность с FLAG_ACTIVITY_CLEAR_TOP внутри вашего onBackPressed

 @Override public void onBackPressed() { Intent it = new Intent(YouCurrentActivity.this, YourFinalActivity.class); it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(it); finish(); } 

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

Существует метод под названием finishAffinity () для завершения всей активности.

 public void onBackPressed(){ super.onBackPressed(); this.finishAffinity();} 

Либо используйте флаг noHistory в манифесте, либо noHistory каждое действие самостоятельно, когда пользователь перемещается.

 startActivity(myIntent); finish(); 

Другое решение, может быть, самое лучшее, если у вас так много наложений: используйте только одно действие и обрабатывайте контент во Fragments . Таким образом, вы контролируете, что именно вы хотите показать, когда пользователь нажимает кнопку «Назад».

В уровне API 11 или выше используйте FLAG_ACTIVITY_CLEAR_TASK и FLAG_ACTIVITY_NEW_TASK в Intent для очистки всего стека действий. Добавьте этот код в свой onBackPressed()

 > This launch mode can also be used to 

Хороший эффект в сочетании с FLAG_ACTIVITY_NEW_TASK: если он используется для запуска корневой активности задачи, он выведет на текущий момент весь исполняемый экземпляр этой задачи на передний план, а затем очистит его до корневого состояния. Это особенно полезно, например, при запуске деятельности из диспетчера уведомлений.

Таким образом, ваш код для запуска B будет:

 Intent intent = new Intent(A.this, B.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); finish(); // call this to finish the current activity 
Intereting Posts
Как включить параметры разработчика и ADB на Fire Phone? Как сделать запрос соединения в Firebase Android Какое знание / экспертиза требуется для переноса андроида на пользовательское устройство ручного управления? Всплывающее диалоговое окно предупреждения из службы в android Изменяйте программный цвет Ошибка использования привязки данных в android Как автоматически прокручиваться до поля ввода в Android, когда мягкая клавиатура накладывается на них при показе? Разница между onActivityResult и onComplete Session.StatusCallback Facebook Android sdk3.0 Взаимодействие с AsyncTask из панели уведомлений Как нарисовать круг внутри круга с помощью форм Android xml? Иконка ActionBar снова не появляется в ActionBar после setVisible для false, тогда true Ошибка примера LiveWallpaper Andengine Плавающая кнопка действия Прокрутите странное поведение Установить ширину и высоту ImageView программно? Как узнать, выполнила ли Proguard свою работу