今天遇到一個問題:當(dāng)首次安裝 APP,完成時直接點擊打開會出現(xiàn)一種情況:按 home 鍵返回桌面,再點擊 APP 圖標(biāo),發(fā)現(xiàn) APP 重啟并回到首頁。再次按 home 鍵返回桌面,點擊 APP 圖標(biāo),依然是重啟并回到首頁。當(dāng)強制殺掉后臺進程,或者一直按返回直到 APP 正常退出,此問題消失。
在第一次安裝后,Activity 管理棧似乎對進入的 Activity 不做任何判斷與標(biāo)記(是否是棧頂?shù)腁ctivity),每次都會入棧,在將棧清空后又恢復(fù)正常(就是 Task 對 Activity 做記錄了,哪個處于棧頂,是否在棧里等)。
解決辦法:在啟動頁 Activity 的 onCreate 方法中的 super.onCreate 后面加入以下代碼
if (!this.isTaskRoot()) {
Intent mainIntent = getIntent();
String action = mainIntent.getAction();
if (mainIntent.hasCategory(Intent.CATEGORY_LAUNCHER) && action.equals(Intent.ACTION_MAIN)) {
finish();
return;
}
}