Есть приложения в котором есть 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 и выше.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я хочу сделать клиент для сайтаНа сайте есть список постов, статей c картинкой и текстом
Имеется RecyclerView, в котором есть поляКак организовать считывание данных и запись в БД?
Хочу вывести греческую букву U (https://unicode-tablecom/en/01AF/) - получаю знаки вопроса