Android應(yīng)用第一次安裝成功點擊“打開”后Home鍵切出應(yīng)用后再點擊桌面圖標返回導致應(yīng)用重啟問題

最近項目中遇到一個問題,用戶第一次安裝應(yīng)用在系統(tǒng)的安裝器安裝完成界面有“完成”和“打開”兩個按鈕。

  當用戶點擊“打開”按鈕進入用戶注冊頁面進行手機號驗證碼發(fā)送和驗證碼輸入等操作界面,若此時用戶點擊Home鍵切出應(yīng)用到桌面,再從桌面點擊應(yīng)用程序圖標試圖切回應(yīng)用完成驗證碼輸入等操作時,應(yīng)用重新走了歡迎頁等步驟,此時之前從系統(tǒng)的安裝完成界面點擊打開啟動的應(yīng)用其實還在后面運行。

  然而當用戶“完全退出”應(yīng)用,或者在安裝完成界面直接點擊“完成”按鈕再從桌面啟動,或者此應(yīng)用之前是存在的“覆蓋安裝”后點擊“打開”按鈕都是不會導致應(yīng)用程序“多次啟動”的。

  經(jīng)過查找也試過很多種方法,設(shè)置activity的launchMode等都不能解決此問題,廢話不多說,上解決辦法。

  其實原因很簡單,利用程序安裝器打開程序,啟動的Intent是沒有帶Category,而我們自己打開程序是帶了Category,所以只需要在配置Intent.ACTION_MAIN的Activity判斷下有無Category。然后放到通知欄的時候要更具有無Category 來生成啟動的Intent。

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

在應(yīng)用程序設(shè)置<action android:name="android.intent.action.MAIN" />應(yīng)用程序入口Activity的onCreate方法中加入上面的判斷,完美解決應(yīng)用程序多次重啟問題。

特別鳴謝:

http://bbs.csdn.net/topics/390201703

http://www.2cto.com/kf/201407/319948.html

https://www.cnblogs.com/vipmhy/p/4383891.html

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

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

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