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