寫在前面

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

從四個應用場景說起

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

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

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

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

退出應用的幾種方式

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