處理app在后臺運(yùn)行,點(diǎn)擊桌面圖標(biāo)重新啟動問題

原因:由于點(diǎn)擊桌面圖標(biāo)啟動應(yīng)用,是默認(rèn)執(zhí)行配置了 LAUNCHER 的 activity 界面。當(dāng)我們的應(yīng)用是出于冷啟動時(shí),是沒有問題的。但當(dāng)應(yīng)用處于后臺,再次點(diǎn)擊桌面圖標(biāo)啟動應(yīng)用時(shí),是屬于熱啟動。如果想在熱啟動后直接進(jìn)入上一次的界面,就會發(fā)現(xiàn)還是直接打開了默認(rèn)的啟動頁。
啟動頁的配置,如:

        <activity
            android:name=".account.view.LoginActivity"
            android:screenOrientation="portrait"
            android:theme="@style/LoginTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

解決:判斷啟動頁是否是根任務(wù),如果不是,則不初始化啟動頁。在啟動頁的 oncreate 添加下面代碼。

    override fun onCreate(savedInstanceState: Bundle?) {
        if (!isTaskRoot && intent.action != null) {
            finish()
            return
        }
        super.onCreate(savedInstanceState)
    }

親測有效,若還有其他更好處理方式,請多多指教。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容