我的應用程序是在前臺運行的後臺服務。在內存不足的情況下,我的一些處理線程在未重啓應用程序的情況下被殺死。這造成了非常奇怪的行爲。當我的進程被殺死之前,我希望在內存不足時提醒操作系統。這將允許我釋放內存或重新啓動我的應用程序。我似乎無法找到針對這種情況的廣播或通知。如何確定設備在Android上的內存不足時
回答
- 在Android中有一個後臺服務「DeviceStorageMonitorService」持續運行,它定期檢查系統存儲目錄。
- 該服務維護的內存閾值是分配的內部系統內存的10%,所以如果P2是861MB,則內存閾值爲86 MB。 我們可以通過更改文件DeviceStorageMonitorService.java中的宏DEFAULT_THRESHOLD_PERCENTAGE來更改此項。
- 它檢查可用內存的大小與內存閾值,如果它小於閾值內存,它將廣播通知和粘性廣播意圖ACTION_DEVICE_STORAGE_LOW。 如果有完整的記憶意圖ACTION_DEVICE_STORAGE_FULL
在您的接收器中接收此廣播意圖並處理應用程序。
我碰到這個好,但我想它是監視設備的內部或外部存儲而不是內存。所以你認爲如果我釋放內存或重新啓動我的應用程序,當我收到ACTION_DEVICE_STORAGE_LOW意圖它應該解決我的問題?謝謝 – null 2012-03-21 11:45:37
我在那裏看着它,是的,這確實是我正在尋找的。再次感謝,希望這可以幫助別人。 – null 2012-03-21 11:51:43
我覺得它應該可以解決你的問題。當你有這個意圖。你需要處理你的應用程序,因爲當內存不足時,框架會通知應用程序,如果應用程序不處理它,它將終止低優先級的進程。 – Wish 2012-03-21 11:55:44
我建議你在這裏閱讀「管理你的應用程序的內存」:https://developer.android.com/training/articles/memory.html。系統回調方法onTrimMemory將通知您不同的RAM使用情況,如方法參數的值所示。詳細信息請參見https://developer.android.com/reference/android/content/ComponentCallbacks2.html#onTrimMemory(int)。這種方法的描述說:當操作系統已確定這是一個過程的好時機 從它的工藝修剪不必要的內存
調用。這將會發生,例如當它在後臺運行時,並且沒有足夠的內存來保持儘可能多的後臺進程運行。 你不應該比較水平的精確值,因爲可能會新增 中間值 - 你通常要比較 如果該值大於或等於你有興趣在一個水平
檢索。在任何點處理當前修剪級別時,可以使用 ActivityManager.getMyMemoryState(RunningAppProcessInfo)。
例如,TRIM_MEMORY_COMPLETE作爲參數onTrimMemory:
公共靜態最終詮釋TRIM_MEMORY_COMPLETE等級爲 onTrimMemory(INT):進程已接近背景LRU列表的末尾,和如果沒有發現更多的內存很快就會死亡,將會是 。常量值:80(0x00000050)
- 1. Samsung Galaxy設備上的內存不足
- 2. 在設備上創建位圖時內存不足
- 3. 如何測試Android設備上的「內存不足」異常處理程序?
- 4. GAE設備中的內存不足
- 5. 內存不足上的AsyncTask在Android中
- 6. 在低端設備上讀取大型XML時,getXml()的內存不足
- 7. Android - 內存不足錯誤。當它在真實設備上運行
- 8. Android:內存不足
- 9. Android內存不足
- 10. android - 內存不足
- 11. Android啓動時的內存不足
- 12. 如何確定Android設備的速度?
- 13. 內存不足JSON的Android
- 14. 如何確定在Android設備上安裝的應用程序?
- 15. Android設備上的OpenGL中正確的內存管理
- 16. 確定Android 4.2設備上的用戶
- 17. 如何確保禁用C++異常時的內存不足(VS2010)?
- 18. 內存不足的錯誤在某些設備
- 19. Android內存不足綁定例外
- 20. 如何在Android設備上重現低狀態內存
- 21. VPS上的內存不足
- 22. vps上的內存不足
- 23. 在Android平臺上編程時內存不足
- 24. 在android上創建圖庫時出現內存不足錯誤
- 25. 當在Android上用Apache poi讀取xls時內存不足
- 26. 內存不足android異常在android中?
- 27. 如何確定設備內存的頁面幀號?
- 28. 如何確定設備內存的頁框號?
- 29. 如何確定OpenCL中的可用設備內存?
- 30. 如何在Android設備上
好問題,我也想知道如何接收低內存通知。 – paiego 2012-11-11 12:58:23