为什么当可用内存很高时 ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL?

问题描述 投票:0回答:0

当可用内存很高时,应用程序经常收到 ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL。以下是这个 ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL 发生时内存情况的快照:

Available memory (MB): 3041
Total memory (MB): 3926

以上数字得到如下:

ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
ActivityManager activityManager = (ActivityManager) activity.getSystemService(ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);
lAvailableMemoryMB = mi.availMem / 0x100000L;
lTotalMemoryMB = mi.totalMem / 0x100000L;

我知道官方文档警告 availMem:“这个数字不应该被认为是绝对的:由于内核的性质,这个内存的很大一部分实际上正在使用并且需要整个系统运行良好”。但是,当 TRIM_MEMORY_RUNNING_CRITICAL 发生时,可用内存超过 3GB。任何人都可以对此有所了解吗?

android-memory
© www.soinside.com 2019 - 2024. All rights reserved.