android開發時,finish()跟System.exit(0)的區別

這兩天在弄Android,遇到一個問題:所開發的小遊戲中有背景音樂,玩的過程當中始終有音樂在放着,而後在我退出遊戲後,音樂還在播放!android

我看了一下我最開始寫的退出遊戲的代碼,就是簡單的finish()語句。我想應該是這個地方出了問題。後來想了想,之前好像見過有用System.exit(0)退出遊戲的,而後就嘗試了一下,發現問題果真解決了。 如今來完全弄清楚二者的區別。app

首先一個Activity是有生命週期的,onCreate,onStart,onResume,onPause,onStop,onDestroy...生命週期

finish是Activity的類,僅僅針對Activity,當調用finish()時,只是將活動推向後臺,並無當即釋放內存,活動的資源並無被清理;當調用System.exit(0)時,殺死了整個進程,這時候活動所佔的資源也會被釋放。遊戲

其實android的機制決定了用戶沒法徹底退出應用,當你的application最長時間沒有被用過的時候,android自身會決定將application關閉了。進程

相關文章
相關標籤/搜索