安裝app后直接點(diǎn)擊打開帶來(lái)的問(wèn)題

問(wèn)題

項(xiàng)目發(fā)版當(dāng)晚發(fā)現(xiàn)的:安裝完APP后直接點(diǎn)擊打開,接著Home鍵退到后臺(tái),再次打開App 時(shí)發(fā)現(xiàn)重啟了。試了一下去哪兒,陌陌等幾個(gè)主流app,也有這個(gè)問(wèn)題

原因

The Launcher starts an app using an intent with android.intent.action.MAIN action and android.intent.category.LAUNCHER category. The installer starts an app with the android.intent.action.MAIN action and no category.

大概就是桌面啟動(dòng)app和安裝器啟動(dòng)app的Intent不一樣,安裝完直接open其實(shí)已經(jīng)啟動(dòng)了app,但是桌面點(diǎn)擊圖標(biāo)沒(méi)有認(rèn)為你已經(jīng)啟動(dòng)了app,于是重啟。

解決辦法

在你的app的入口Activity的onCreate()方法最開始加入代碼段:

if (!this.isTaskRoot()) { //判斷該Activity是不是任務(wù)空間的源Activity,false也就是說(shuō)是被系統(tǒng)重新實(shí)例化出來(lái)
                //如果你就放在launcher Activity中話,這里可以直接return了
                Intent mainIntent = getIntent();
                String action = mainIntent.getAction();
                if (mainIntent.hasCategory(Intent.CATEGORY_LAUNCHER) && action.equals(Intent.ACTION_MAIN)) {
                    finish();
                    return;//finish()之后該活動(dòng)會(huì)繼續(xù)執(zhí)行后面的代碼,加return避免可能的exception
                }
            }
最后編輯于
?著作權(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)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,030評(píng)論 25 709
  • Correctness AdapterViewChildren Summary: AdapterViews can...
    MarcusMa閱讀 9,053評(píng)論 0 6
  • 有人扼住他的咽喉 和他搏斗 我是女人 沒(méi)練過(guò)武功 我只對(duì)著他笑 這帥哥誰(shuí)呀 命運(yùn)呀
    雪莉詩(shī)話閱讀 308評(píng)論 14 13
  • 一 謝正言來(lái)了,把柯小艾的世界攪得一塌糊涂。 昨天,山崩海嘯般的劇烈震蕩讓柯小艾無(wú)法適應(yīng)。早上,仍由王姨為謝雨寧準(zhǔn)...
    冬妮婭閱讀 644評(píng)論 1 0
  • 還記得小時(shí)候看電視劇的時(shí)候,看過(guò)這樣一個(gè)鏡頭:一個(gè)大叔被公司通知明天不用來(lái)了。第二天瞞著妻子,照樣夾著公文包和...
    賣萌娶媳婦的熊閱讀 256評(píng)論 0 0

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