應用明明沒有被系統回收。按home鍵退出到桌面的時候會出現這種,點擊應用圖標會再次打開launcher Acitvity。我的項目的launcher是一個登陸。他會再次去到登錄界面。在登錄界面通過finish()殺死這個activity又能再次返回到之前按home鍵之前的樣子。所以讓我感覺很是奇怪。而且這種情況似乎并不是在所有的手機上都有出現,在我自己的手機以及模擬器都不會出現這樣的情況。而在某些小米華為上面會出現。讓我很郁悶。。。網上搜索了一些。但是似乎不能解決這個問題。
發現百度或者谷歌出來的一些處理方案
比如?
似乎沒用啊不過
//? ? ? ? if(!this.isTaskRoot()) { //判斷該Activity是不是任務空間的源Activity,“非”也就是說是被系統重新實例化出來
//? ? ? ? ? ? //如果你就放在launcher Activity中話,這里可以直接return了
//? ? ? ? ? ? Intent mainIntent=getIntent();
//? ? ? ? ? ? String action=mainIntent.getAction();
//? ? ? ? ? ? if(mainIntent.hasCategory(Intent.CATEGORY_LAUNCHER) && action.equals(Intent.ACTION_MAIN)) {
//? ? ? ? ? ? ? ? finish();
//? ? ? ? ? ? ? ? return;//finish()之后該活動會繼續執行后面的代碼,你可以logCat驗證,加return避免可能的exception
//? ? ? ? ? ? }
//? ? ? ? }
部分機型有用
//? ? ? ? if ((getIntent().getFlags()& Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)!=0)
//? ? ? ? {
//? ? ? ? ? ? finish();
//? ? ? ? ? ? return;
//? ? ? ? }
還有一種在Index里面寫一個靜態常量。只要index沒有被destroy就為true。在打開的時候判斷下。如果這個常量為true就直接finish,return,似乎有效