FLAG_ACTIVITY_CLEAR_TOP是一个启动模式标志,用于在启动一个Activity时清除该Activity之上的所有Activity实例。当设置了FLAG_ACTIVITY_CLEAR_TOP标志时,如果要启动的Activity已经在任务栈中存在,那么该Activity之上的所有Activity实例都会被销毁,然后将该Activity实例置于栈顶,以便用户返回到该Activity时不会再创建新的实例。
使用FLAG_ACTIVITY_CLEAR_TOP标志的场景包括以下几种情况:
用户点击通知栏中的通知,打开对应的Activity,并且希望按返回键时回到主界面而不是通知栏中的Activity。
用户从侧边栏或菜单中选择一个功能项,打开对应的Activity,并且希望按返回键时回到主界面而不是菜单或侧边栏Activity。
用户从主界面的某个功能点击进入一个新的Activity,并且希望按返回键时回到主界面而不是之前的功能界面。
使用FLAG_ACTIVITY_CLEAR_TOP标志的示例代码如下:
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
需要注意的是,FLAG_ACTIVITY_CLEAR_TOP标志只在启动一个新的Activity时才有效果,如果直接调用finish()方法来销毁当前Activity,不会触发FLAG_ACTIVITY_CLEAR_TOP标志的效果。