当用户希望退出所有打开的活动时,他们应该按下一个按钮,加载应用程序启动时运行的第一个活动,清除所有其他活动,然后完成最后一个剩余活动。当用户按下退出按钮时,运行以下代码。就我而言,LoginActivity
是我的程序中运行的第一个活动。
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
上面的代码清除了除LoginActivity
. 然后将以下代码放入LoginActivity
'sonCreate(...)
中,以监听何时LoginActivity
重新创建以及传递了 'EXIT' 信号:
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
为什么在 Android 中制作退出按钮如此困难?
Android 努力阻止您在应用程序中使用“退出”按钮,因为他们希望用户永远不会关心他们使用的程序是否在后台运行。
Android OS 开发人员希望您的程序能够在手机意外关机和断电的情况下幸存下来,并且当用户重新启动程序时,他们会从上次中断的地方继续。因此,用户可以在使用您的应用程序时接听电话,并打开需要释放您的应用程序以获取更多资源的地图。
当用户恢复您的应用程序时,他们会从上次中断的地方继续,不会中断。这个退出按钮正在篡夺活动管理器的权力,可能会导致自动管理的 android 程序生命周期出现问题。