App啟動(dòng)時(shí),按HOME鍵退到后臺(tái),從近期任務(wù)中無法啟動(dòng)應(yīng)用

問題描述

? App的啟動(dòng)頁一般做法都是停留幾秒后自動(dòng)的關(guān)閉自己,跳轉(zhuǎn)的新的頁面。如果在App在啟動(dòng)頁停留時(shí)內(nèi)退到后臺(tái),如果此時(shí)啟動(dòng)頁自動(dòng)關(guān)閉且跳轉(zhuǎn)的新的頁面時(shí),從最近任務(wù)列表中啟動(dòng)App,程序會(huì)造成程序無法啟動(dòng)的問題。

問題分析

? 系統(tǒng)的近期任務(wù)列表保存的應(yīng)該是App最后一個(gè)顯示的Activity信息,當(dāng)最后一個(gè)顯示的Activity關(guān)閉時(shí),就會(huì)造成在近期任務(wù)列表中無法啟動(dòng)的問題

解決方法

簡(jiǎn)單的做法是,如果當(dāng)前App在后臺(tái),且需要關(guān)閉自己時(shí),設(shè)置一個(gè)標(biāo)志位,不執(zhí)行關(guān)閉的操作,返回到前臺(tái)時(shí)再執(zhí)行關(guān)閉操作。代碼如下

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class SplashActivity extends AppCompatActivity {
    /**
     * 用來標(biāo)識(shí)是否進(jìn)入后臺(tái)
     */
    private boolean mIsOnPause;
    /**
     * 用來標(biāo)識(shí)是否需要關(guān)閉當(dāng)前頁面
     */
    private boolean mIsFinish;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        //如果當(dāng)前是從后臺(tái)回到前臺(tái),且需要關(guān)閉當(dāng)前頁面時(shí),執(zhí)行關(guān)閉操作
        //否則重置標(biāo)準(zhǔn)位
        if (mIsOnPause && mIsFinish) {
            mIsOnPause = false;
            finish();
            return;
        }
        mIsOnPause = false;
    }

    @Override
    protected void onPause() {
        super.onPause();
        mIsOnPause = true;
    }

    @Override
    public void finish() {
        //如果當(dāng)前是不可交互狀態(tài),不關(guān)閉頁面,而是將關(guān)閉標(biāo)識(shí)位設(shè)置位true
        if (!mIsOnPause) {
            mIsFinish = false;
            super.finish();
        } else {
            mIsFinish = true;
        }
    }
}

源碼探索

//todo

?著作權(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)容