如果應用程式當中需要使用service來執行後台任務的話,請一定要注意只有當任務正在執行的時候才應該讓service執行起來。另外,當任務執行完之後去停止service的時候,要小心service停止失敗導致記憶體洩漏的情況。
當我們啟動乙個service時,系統會傾向於將這個service所依賴的程序進行保留,這樣就會導致這個程序變得非常消耗記憶體。並且,系統可以在lru cache當中快取的程序數量也會減少,導致切換應用程式的時候消耗更多效能。嚴重的話,甚至有可能會導致崩潰,因為系統在記憶體非常吃緊的時候可能已無法維護所有正在執行的service所依賴的程序。
為了能夠控制service的生命週期,android官方推薦的最佳解決方案就是使用intentservice,這種service的最大特點就是當後台任務執行結束後會自動停止,從而極大程度上避免了service記憶體洩漏的可能性。
注意:讓乙個service在後台一直保持執行,即使它並不執行任何工作,這是編寫android程式時最糟糕的做法之一。
磁碟快取和記憶體快取
安卓學習日記 檔案管理
1 使用內部儲存器 2 使用外部儲存器 寫入私有檔案 讀取私有檔案 讀取raw檔案 public void readrawfileclick view v in.close toast.maketext this,sb,toast.length short show catch filenotfou...
安卓記憶體優化
1.資料結構優化 頻繁字串拼接用stringbuilder arraymap sparsearray替換hashmap 記憶體抖動 再小的class耗費0.5kb hashmap乙個entry需要額外占用32b 2.物件復用 復用系統自帶的資源 listview gridview的convertvi...
安卓Android的記憶體管理原理嘮叨
android採取了一種有別於linux的程序管理策略,有別於linux的在程序活動停止後就結束該程序,android把這些程序都保留在記憶體中,直到系統需要更多記憶體為止。這些保留在記憶體中的程序通常情況下不會影響整體系統的執行速度,並且當使用者再次啟用這些程序時,提公升了程序的啟動速度。那and...