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

來源:互聯網
上載者:User

剛從案頭應用開發轉做手機開發的同學常常被這個問題困擾——使用者按下Home鍵後,應用不是“完全退出”而是“運行在後台”,它仍然佔用著系統資源,這麼多後台啟動並執行應用必然導致系統變慢,是不是應該在我的應用程式裡給使用者提供一個“退出菜單”或“退出按鈕”呢?

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

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

方案1:開啟系統主屏來類比應用退出的效果,這和使用者按Home鍵沒有什麼區別。

Intent intent = new Intent(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_HOME);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);

方案2:直接殺掉當前應用進程。這個方法太暴力了,我找到一段iOS開發文檔,上面強烈不建議使用殺進程的方式來退出應用,原因也適用於Android系統:這樣退出的效果容易讓使用者以為應用崩潰了。

int pid=android.os.Process.myPid();android.os.Process.killProcess(pid);

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

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

參考資料:

Quitting an application - is that frowned upon?
android - exit application code
How to close/exit an application in android?
Proper way to exit iPhone application?
How do I programmatically quit my iOS application?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.