解決Android應(yīng)用第一次安裝成功后Home鍵切到后臺(tái)再點(diǎn)擊桌面圖標(biāo)應(yīng)用重啟

問(wèn)題現(xiàn)象:第一次安裝應(yīng)用,不要用adb安裝,而是要用系統(tǒng)的安裝器去安裝,安裝完成后,直接點(diǎn)擊打開,不要點(diǎn)擊完成,進(jìn)入應(yīng)用,隨便點(diǎn)開其他界面,點(diǎn)擊home鍵讓應(yīng)用進(jìn)入后臺(tái),然后再點(diǎn)擊應(yīng)用的圖標(biāo)進(jìn)入應(yīng)用,這是應(yīng)用會(huì)重新回到入口界面,實(shí)際上應(yīng)用已經(jīng)重啟了。

重新殺掉應(yīng)用,以后再每次打開應(yīng)用都不會(huì)再有這個(gè)問(wèn)題,只有第一次有,并且系統(tǒng)的安裝器安裝完成后,要直接點(diǎn)擊打開才能復(fù)現(xiàn),另外這個(gè)問(wèn)題不是所有的手機(jī)都能復(fù)現(xiàn)的,

之前做項(xiàng)目的時(shí)候就遇到過(guò),現(xiàn)在做新項(xiàng)目的時(shí)候有被測(cè)試人員發(fā)現(xiàn)了,尷尬啊,不能再在同一個(gè)問(wèn)題上跌倒3次,以后新建項(xiàng)目一定要加上預(yù)防措施,現(xiàn)記錄解決方法:

問(wèn)題原因:

利用系統(tǒng)安裝器打開程序,有些廠商在啟動(dòng)的Intent是沒(méi)有帶Category,
而我們自己打開程序是帶了Category,所以只需要在配置了Intent.ACTION_MAIN的Activity的
onCreate()方法中的添加下面代碼即可。放在super.onCreate(savedInstanceState)方法后。

if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0){
            finish();
            return;
        }

或者
if (!isTaskRoot()) { 
Intent intent = getIntent(); 
String action = intent.getAction(); 
if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) { 
finish(); 
return; 
} 
} 

另外,需要注意兩點(diǎn),一是、如果上面的Activity中實(shí)現(xiàn)了finish() 和 onDestroy() 方法,一定要保證這兩個(gè)方法中不會(huì)有對(duì)空對(duì)象的操作以及注銷未注冊(cè)的廣播等類似操作,因?yàn)榈诙未蜷_應(yīng)用時(shí),程序會(huì)調(diào)用finish()方法,及觸發(fā)onDestroy()方法,而這兩個(gè)函數(shù)里面的對(duì)象變量都還未進(jìn)行初始化等操作。二是、finish() 和 onDestroy() 方法中不能有System.exit(0);否則第二次打開應(yīng)用殺掉進(jìn)程時(shí)也會(huì)將第一次打開的應(yīng)用殺掉。

轉(zhuǎn)自:http://www.echojb.com/mobile-application/2017/06/10/422423.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容