안드로이드, 자바/안드로이드
안드로이드 로그아웃 시 액티비티 전체 종료하고 로그인 액티비티만 남기기
sondiaa
2021. 6. 5. 15:59
로그인을 구현한 뒤, 로그아웃을 구현하려는데 로그아웃을 하여 LoginActivity로 보내고 뒤로가기를 누르니 다시 메인 액티비티가 나와서 당황했다. 알고보니 스택에 남아있는 액티비티들을 모두 제거해줘야 초기의 LoginActivity만 있는 상태가 되는 것이였다.
코드
Intent ToLogin = new Intent(getApplicationContext(), LoginActivity.class);
ToLogin.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(ToLogin);
그래서 FLAG_ACTIVITY_CLEAR_TASK 사용하여 TASK를 비워주고 FLAG_ACTIVITY_NEW_TASK 새로운 TASK를 생성했다.
그 후에 LoginActivity로 이동하여 뒤로가기를 누르니 정상적으로 남는 액티비티 없이 앱이 종료되었다.
만약 로그아웃 시 모든 액티비티를 제거하고 종료시키고 싶다면 위의 방법이 아니라
finishAffinity();
System.runFinalization();
System.exit(0);
이런 방법을 사용하면 된다.