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