Есть приложения в котором есть StartActivity в котором загружается данные с сервера. После данные передаются в MainActivity где данные обрабатываются и выводится на экран.
Нужно, чтобы после запроса StartActivity был уничтожен. Но при щелчке назад в MainActivity приложения возвращается назад где просто выводится лейаут StartActivity.
Нужно сделать так, чтобы после передачи данных StartActivity был уничтожен. Как можно реализовать или есть альтернативы?
Вся проблема в том, что StartActivity остается в стеке активностей.
Решается все просто: когда из StartActivity вызываете MainActivity достаточно после startActivity() тупо вызвать finish() текущего StartActivity, тогда при нажатии кнопки вы не вернетесь назад.
Intent intent = new Intent(this, MainActivity.class);
this.startActivity(intent);
this.finish();
Нужно очистить стэк, после авторизации:
Intent intent = new Intent(StartActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
Не знаю, насколько это вам подходит, но вот еще один способ.
Можно использовать метод finishAffinity(), который будет закрывать текущий Activity и все родительские Activity. Тем самым, вы на StartActivity не попадете.
Работает только в Android 4.1 и выше.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости