寫在前面

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

從四個(gè)應(yīng)用場(chǎng)景說(shuō)起

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

  • 崩潰后重啟
    程序總是無(wú)法做到盡善盡美,有時(shí)候你也不知道因?yàn)槭裁丛驅(qū)е铝?APP 的崩潰,這無(wú)疑是非常糟糕的用戶體驗(yàn)。這時(shí)候我們可以采用重啟機(jī)制來(lái)增強(qiáng)用戶舒適體驗(yàn)感。

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

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

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

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

  • System.exit(0) 使用系統(tǒng)的方法,強(qiáng)制退出

    網(wǎng)友評(píng)論