編輯:Android開發實例
剛從桌面應用開發轉做手機開發的同學常常被這個問題困擾——用戶按下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?
有時候,不希望圖片突然出現在屏幕上,而要應用某種形式的動畫顯示圖片時,從一個圖像轉換到另一個。這是在Android中支持的ImageSwitcher圖像切換器允許通過它們
在《Android 手機衛士(六):打包生成apk維護到服務器》一文中,實現了新版本的apk到服務器,當打開客戶端apk的時候,發現有新版本,提示更
南丁格爾玫瑰圖 在常規圖表中實在很驚艷,但我初看沒看懂,一查原來南丁格爾這麼偉大,確實值得尊敬。 再仔細研究了下這種圖的構成,發現原來就是把柱形圖的柱形換成了扇形
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個