寫在前面

這是最近一些朋友問我的問題,我把它整理成了一個庫,供大家享用,GitHub 地址:https://github.com/nanchen2251/AppManager

從四個應(yīng)用場景說起

  • 退出應(yīng)用
    相信各位朋友或多或少都會有遇到過需要在某個特定的地方退出應(yīng)用的需求,這個場景一定非常普遍。

  • 崩潰后重啟
    程序總是無法做到盡善盡美,有時候你也不知道因為什么原因?qū)е铝?APP 的崩潰,這無疑是非常糟糕的用戶體驗。這時候我們可以采用重啟機制來增強用戶舒適體驗感。

  • 莫名其妙重啟
    然而心細(xì)的小伙伴肯定會發(fā)現(xiàn),在部分手機上會出現(xiàn)莫名其妙的崩潰后重啟(后面會講原因),而且最要命的是,假設(shè)你有三個 Activity,他們分別是 Act1, Act2, Act3,它們的啟動順序是 Act1 -> Act2 -> Act3,而如果在 Act3 發(fā)生了崩潰,這時候極有可能應(yīng)用重啟后進(jìn)入的是 Act2,而 Act2 中需要某個來源于 Act1 (或者在 Act1 中通過接口獲取) 的參數(shù),當(dāng)沒有這個參數(shù)的時候會引發(fā)崩潰(或者數(shù)據(jù)不全)。這時候你可能最直觀的想法就是禁止應(yīng)用重啟,但或許這并不是最佳的方式。

  • 崩潰時彈出一個對話框
    在部分手機上,當(dāng)崩潰的時候,會彈出一個提示對話框。在這種情況下,用戶只有點擊 “強行關(guān)閉” 來結(jié)束程序。當(dāng)該對話框出現(xiàn),對用戶來說是相當(dāng)不友好的?;蛟S我們可以通過某種方式攔截掉系統(tǒng)的處理,讓應(yīng)用出錯時不再顯示它。

退出應(yīng)用的幾種方式

Andorid 退出應(yīng)用的方式很多,常見的也就下面四種。