天天看點

[Android問答] 如何實作“退出應用”功能?[Android問答] 如何實作“退出應用”功能?

剛從桌面應用開發轉做手機開發的同學常常被這個問題困擾——使用者按下Home鍵後,應用不是“完全退出”而是“運作在背景”,它仍然占用着系統資源,這麼多背景運作的應用必然導緻系統變慢,是不是應該在我的應用裡給使用者提供一個“退出菜單”或“退出按鈕”呢?

我在Android開發文檔裡暫時沒有找到關于這個問題的解釋,但經過在網上調查很多資料以後,我認為答案是比較明顯的:不應提供“退出應用”功能。

雖然文檔裡沒有明确說明,但假如這是常用功能,應該有簡便的方法實作,而實際上要靠代碼“退出”一個應用并非易事。以下總結了能夠模拟退出效果的兩個方案:

方案1:打開系統主屏來模拟應用退出的效果,這和使用者按Home鍵沒有什麼差別。

此外,有人建議調用System.exit(0)退出應用,實際測試發現這個方法常常隻能關閉目前Activity,或是根本不起作用。

由此可以看出,Android系統的設計裡本來就沒有“退出應用”的機制,當使用者按下Home鍵或在應用首頁裡按下Back鍵後,應用被置于背景,而何時要徹底殺掉應用程序則由系統決定。Android和iOS都已抛棄了“退出應用”這個概念,對手機使用者來講,他隻需要知道“啟動應用”——概念越少越簡單。

參考資料:

<a href="http://stackoverflow.com/questions/2033914/quitting-an-application-is-that-frowned-upon">Quitting an application - is that frowned upon?</a>

<a href="http://stackoverflow.com/questions/3226495/android-exit-application-code">android - exit application code</a>

<a href="http://stackoverflow.com/questions/7239795/how-to-close-exit-an-application-in-android">How to close/exit an application in android?</a>

<a href="http://stackoverflow.com/questions/355168/proper-way-to-exit-iphone-application">Proper way to exit iPhone application?</a>

<a href="https://developer.apple.com/library/ios/#qa/qa2008/qa1561.html">How do I programmatically quit my iOS application?</a>

繼續閱讀