Ответ 1
В манифесте добавьте android:noHistory="true"
в качестве атрибута активности входа.
У меня есть экран входа в систему, в котором пользователь входит в систему. После этого пользователь будет доставлен на главный экран.
Теперь моя проблема в том, что при нажатии кнопки "Назад" пользователь снова появляется на экране входа в систему.
Есть ли способ исправить эту проблему?
Я попытался позвонить finish()
сразу после startActivity()
, но это только вызвало сбой приложения и не показалось хорошим решением.
В манифесте добавьте android:noHistory="true"
в качестве атрибута активности входа.
Вызов finish()
после startActivity()
- это путь. Вы должны исследовать причину сбоя в этом случае.
Рассмотрите возможность запуска основного приложения, а затем запуск экрана входа в систему как пользовательский модальный диалог.
Советы для модального запуска:
builder.setCancelable(false)
android:noHistory=true
в манифест.Если вы хотите вернуться к входу в систему только из определенного действия (скажем, действия с паролем), переопределите onBackPressed()
:
@Override
public void onBackPressed() {
super.onBackPressed();
}
вашего "главного экрана", который появляется после действия "Логин/пароль" с кодом ниже,
Intent homeIntent = Intent(Intent.ACTION_MAIN);
homeIntent.addCategory( Intent.CATEGORY_HOME );
homeIntent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP;
startActivity(homeIntent);
это сведет ваше приложение к минимуму при повторном нажатии и не вернется к активности входа в систему/ввода пароля.
Если вы хотите убить приложение, используйте
android.os.Process.killProcess(android.os.Process.myPid());
выйти из приложения
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){
this.finishAffinity()
}