API 16でリリースされたfinishAffinityメソッドは、進行中のすべてのアクティビティを閉じ、アプリを閉じます。
this.finishAffinity();
このアクティビティと、現在のタスクで同じアフィニティを持つそのすぐ下のすべてのアクティビティを終了します。これは通常、アプリケーションを別のタスクで起動でき(理解できるコンテンツタイプのACTION_VIEWからなど)、ユーザーがアップナビゲーションを使用して現在のタスクから独自のタスクに切り替える場合に使用されます。この場合、ユーザーが2番目のアプリケーションの他のアクティビティに移動した場合は、タスク切り替えの一部としてそれらすべてを元のタスクから削除する必要があります。
この終了では、前のアクティビティに結果を提供することはできず、そうしようとすると例外がスローされることに注意してください。
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アプリケーションをプログラムで終了する方法
それが役に立てば幸い!幸運を!