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