我遇到内存泄漏问题,我想要一个回退方法,快速重启我的应用程序。
我硬编码了一个值,我观察到了问题:
Debug.MemoryInfo memoryInfo = new Debug.MemoryInfo();
Debug.getMemoryInfo(memoryInfo);
// double totalMemory = 0;
// totalMemory = Runtime.getRuntime().totalMemory() / (1024 * 1024);
// double freeMemory = Runtime.getRuntime().freeMemory() / (1024 * 1024);
// double maxMemory = Runtime.getRuntime().maxMemory() / (1024 * 1024);
if (memoryInfo.getTotalPss() / 1024 > 30)//totalMemory - freeMemory < maxMemory - 10)
{
setPersistent(false);
mShouldRestart = true;
}
如你所见,我已经注释掉了一些部分。我想询问特定的设备,我正在使用多少内存,以及我可以获得多少内存。然而,注释掉的部分似乎提供了奇怪的设置,比如我使用了15MB,2MB是免费的,总共可能是64MB。
我想实现像usedMemory&gt;这样的东西。 maxmemory - 10 ...然后清除视图等。