这是答案
finishAffinity() 不用于“关闭应用程序”。它用于从当前任务(可能包含属于多个应用程序的 Activity)中删除属于特定应用程序的多个 Activity。
即使您完成了应用程序中的所有活动,托管您的应用程序的操作系统进程也不会自动消失(就像调用 System.exit() 时一样)。Android 最终会在处理它时杀死您的进程。你无法控制这个(这是故意的)。
你可以用这个
public void endTask() {
// Is the user running Lollipop or above?
if (Build.VERSION.SDK_INT >= 21) {
// If yes, run the fancy new function to end the app and
// remove it from the task list.
finishAndRemoveTask();
} else {
// If not, then just end the app without removing it from
// the task list.
finish();
}
}
来源并阅读更多