Удалить все предыдущие действия, кроме домашних действий - PullRequest
0 голосов
/ 11 января 2020

Как удалить все действия, кроме HomeActivity.

Например: A (HomeActivity) -> B -> C -> D теперь снова вызывайте действие B, удаляя действия C & D. Я отправляю некоторые данные из D активность в B деятельность через намерение. У меня есть кнопка «Далее», если я нажму кнопку «Далее», этот процесс будет завершен. Если я нажму обратно, мой процесс будет D -> C -> B-> A

Ответы [ 3 ]

2 голосов
/ 11 января 2020

Когда вы выходите из D-> B, используйте intent.setFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP);. Он закроет все остальные действия поверх него, и это намерение будет доставлено (теперь уже сверху) старому действию как новое намерение.

FLAG_ACTIVITY_CLEAR_TOP

1 голос
/ 11 января 2020

я бы предложил не очень гладкое решение, но вместо запуска действий для всех из них замените их на startActivityForResult, найдите код результата и, если он будет возвращен из действия (то есть для вас конечно), затем вызывайте fini sh со всеми действиями в пути с кодом результата, пока не достигнете своей домашней активности.

1 голос
/ 11 января 2020

Затем вам нужно создать переменную static activity в операциях C и D.

Точно так же, как это

 //create static variable
 public static CActivity cactivity;

, затем инициализировать эту переменную в onCreate из Activity.

  //initialization 
  cactivity=this;

Fini sh, что activity, где вы хотите

// use this where you want to finish activity 
CActivity.cactivity.finish();

Убедитесь, что Activity должен работать в фоновом режиме, в противном случае ваше приложение создаст sh ,

...