Как убить Android-активность, оставляя ее так, чтобы ее нельзя было получить с помощью кнопки "Назад"?

В заданной активности Android я хотел бы в какой-то момент начать новую деятельность для пользователя. Как только они покидают первое действие и приходят ко второму, первое действие является устаревшим, и я хочу полностью удалить его, чтобы он не мог получить доступ снова с помощью кнопки "Назад".

Как лучше всего это сделать? Как убить или уничтожить это действие сразу после запуска пользователем нового действия?

Ответ 1

Вам просто нужно позвонить finish()

Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
finish();

Ответ 2

Настройка android:noHistory="true" активности вашего манифеста удалит действие из стека, когда он будет удален. см. здесь

Ответ 3

вы можете использовать:

intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

Ответ 4

Да, все, что вам нужно сделать, это завершение вызова() в любой операции, которую вы хотели бы закрыть.

Ответ 5

Запишите это в каждом "новом действии" после того, как вы инициализировали новое намерение →

Intent i = new Intent(this, yourClass.class);
startActivity(i);
finish();

Ответ 6

Вы также можете добавить android:noHistory="true" в тэг Activity в AndroidManifest.xml.

<activity
            ...
            android:noHistory="true">
</activity>

Ответ 7

Добавьте этот атрибут в вашу активность в файле манифеста. андроид: noHistory = "истина"

Ответ 8

Наконец-то я получил решение!

Мой контекст таков: - Я хочу отключить сокетное соединение, когда активность уничтожена, я пытался завершить() активность, но она мне не сработала, она где-то поддерживает соединение.

поэтому я использую android.os.Process.killProcess(android.os.Process.myPid()); это убило мою активность, и я использовал android:excludeFromRecents="true" для удаления из недавней активности.

Ответ 9

Используйте приведенный ниже код, чтобы действие было удалено, когда оно исчезло и к нему будет обращена обратная кнопка

@Override
public void onPause() {
    super.onPause();

    // Remove the activity when its off the screen
    finish();
}