Как я могу отключить "вернуться" к некоторой активности?

Я не хочу, чтобы пользователь мог вернуться к экрану моего приложения. По-видимому, одним из решений является проверка того, является ли действие ниже текущего, экземпляром заставки, и в этом случае выйдите из приложения, как показано в приведенном ниже коде. Тем не менее, я не знаю, как проверить предыдущую активность в стеке. Кто-нибудь может помочь? Есть ли другой способ отключить "вернуться" к заданному действию?

@Override
public void onBackPressed() { 
    if(<previous activity in stack is an instance of splashscreen>){   
        Intent exit_intent=new Intent(CurrentActivity.this, SplashScreen.class);
        exit_intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        exit_intent.putExtra("EXIT", true);
        context.startActivity(exit_intent);
    }
}

Ответ 1

Вызовите finish() в своей активности Splash Screen сразу после запуска следующего действия.

Другим подходом является добавление этого атрибута в вашу деятельность в AndroidManifest.xml: android:noHistory="true"

Пример:

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

Этот атрибут инструктирует Android удалить SplashActivity из стека истории после его перехода от.

Ответ 2

Просто позвоните context.finish() после context.startActivity()

Ответ 3

попробуйте следующее при вызове следующего Activity с вашего экрана:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

Ответ 4

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

Из документация:

Следует ли исключить действие из стека действий и закончен (его метод finish() называется), когда пользователь перемещается от него, и он больше не виден на экране - "правда", если он должен быть завершено и "ложно", если нет. Значение по умолчанию неверно ".

Значение" истина" означает, что активность не оставит след. Он не останется в стеке действий для задачи, поэтому пользователь не сможет вернуться к нему. В этом случае, onActivityResult() никогда не вызывается, если вы запускаете другое действие для результат этой деятельности.

Этот атрибут был введен в API Level 3.