#android #fullscreen #splash-screen
Вопрос:
Я использую полноэкранное действие в своем приложении в Android studio, и все работает нормально, но когда экран-заставка заканчивается (через 3000 мс), начинается основное действие или главная страница, но если я использую кнопку «Назад» с телефона Android, дисплей возвращается на экран-заставку и остается на этом экране-заставке (вы не можете снова вернуться к основному действию)…
Какой код я могу использовать, чтобы избежать этого? (показывайте заставку только один раз при запуске приложения и никогда не возвращайтесь к ней, даже если я нажму кнопку «Назад»).
Заранее спасибо..
Комментарии:
1. простого
finish()
после начала новой деятельности будет достаточно2. Можете ли вы уточнить, где именно? в каком методе? Я попытался добавить это к нескольким различным методам, и это не сработало? Спасибо
3. Неважно, я уже понял, что ты сказал. Это работает, добавляя его после начала (намерения).. Но теперь, если я использую этот код, создается другое условие, которого я не хочу. Это условие состоит в том, что если вы сейчас нажмете кнопку «Назад», она будет действовать как кнопка «Домой» на устройстве andorid, но я хочу оставаться в приложении, несмотря ни на что. Я уже нашел, как это исправить, но спасибо за ваш ответ.
Ответ №1:
Вам нужно очистить задний стек, когда вы переходите от действия на экране заставки, установив FLAG_ACTIVITY_CLEAR_TOP
amp; FLAG_ACTIVITY_NEW_TASK
в значение намерение.
Итак, в активности заставки:
Intent intent = new Intent(this, HomeActivity.class); // or MainActivity
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
Комментарии:
1. Можете ли вы уточнить, где именно? в каком методе? Я попытался добавить это к нескольким различным методам, и это не сработало? Спасибо
2. Вы можете найти любое намерение в действии на экране заставки и заменить его этим намерением.. Но убедитесь, что для изменения имени целевого действия
Ответ №2:
Я нашел ответ на этот вопрос. Если вы хотите, чтобы основное действие не возвращалось к экрану-заставке, вы можете использовать следующий метод в основном действии:
@Override
public void onBackPressed() {
moveTaskToBack(false);
}
Этот метод также не позволит пользователю выйти из приложения, если он нажмет кнопку «Назад» (поэтому он остается в приложении до тех пор, пока не нажмет кнопку «Домой» или другую кнопку).
Комментарии:
1. Просто переопределение
onBackPressed
и сохранение его пустым также приведет к тому же результату 😉