API 16에서 출시 된 finishAffinity 메서드는 진행중인 모든 활동을 닫고 앱을 닫습니다.
this.finishAffinity();
이 활동과 동일한 선호도를 가진 현재 작업에서 바로 아래에있는 모든 활동을 완료합니다. 일반적으로 애플리케이션이 다른 작업 (예 : 이해하는 콘텐츠 유형의 ACTION_VIEW에서)으로 시작될 수 있고 사용자가 위쪽 탐색을 사용하여 현재 작업에서 벗어나 자신의 작업으로 전환 한 경우에 사용됩니다. 이 경우 사용자가 두 번째 응용 프로그램의 다른 활동으로 이동 한 경우 작업 전환의 일부로 원래 작업에서 모든 작업을 제거해야합니다.
이 완료로 이전 활동에 결과를 전달할 수 없으며 그렇게하려고하면 예외가 발생합니다.
API 21부터 다음을 사용할 수 있습니다.
finishAndRemoveTask();
이 작업의 모든 활동을 완료하고 최근 작업 목록에서 제거합니다.
대안 :
getActivity().finish();
System.exit(0);
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
Process.sendSignal(Process.myPid(), Process.SIGNAL_KILL);
Intent i = new Intent(context, LoginActivity.class);
i.putExtra(EXTRA_EXIT, true);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(i);
출처 : 프로그래밍 방식으로 Android 애플리케이션을 종료하는 방법
도움이 되었기를 바랍니다. 행운을 빕니다!