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標志的效果。