В данном Android-действии я хотел бы в какой-то момент начать новое действие для пользователя. Как только они покинут первое действие и перейдут ко второму, первое действие устареет, и я хочу полностью удалить его, чтобы к нему нельзя было снова получить доступ с помощью кнопки возврата.
Как лучше всего этого добиться? Как мне убить или уничтожить это действие сразу после того, как пользователь запустил новое действие?
Ответы:
Вам просто нужно позвонить
finish()
источник
onDestroy
- это метод жизненного цикла, который предназначен для вызова только из платформы Android.Настройка
android:noHistory="true"
действия в вашем манифесте приведет к удалению действия из стека при переходе от него. смотрите здесьисточник
ты можешь использовать:
источник
Вы также можете добавить
android:noHistory="true"
в свойActivity
тег вAndroidManifest.xml
.источник
Да, все, что вам нужно сделать, это вызвать finish () в любом действии, которое вы хотите закрыть.
источник
Запишите это в каждом "новом действии" после того, как вы инициализировали свое новое намерение->
источник
Наконец-то я получил решение!
Мой контекст : - Я хочу отключить соединение сокета, когда действие разрушено, я попытался завершить () действие, но у меня это не сработало , его соединение где-то осталось.
поэтому я использую
android.os.Process.killProcess(android.os.Process.myPid());
его для уничтожения своей активности, и я использовалandroid:excludeFromRecents="true"
для удаления из недавней активности.источник
android.os.Process.killProcess(android.os.Process.myPid())
убивает процесс приложения, а не только активность. Это означает, что любая текущая служба (фоновая или передняя) также будет остановлена.Добавьте этот атрибут к своей активности в файле манифеста. андроид: noHistory = "истина"
источник
Вам просто нужно использовать приведенный ниже код при запуске нового действия.
источник