我的应用程序有很多图像,有时由于内存不足而导致崩溃.我写了这个在开发者网站上找到的函数.
public void onLowMemory(){
}
Run Code Online (Sandbox Code Playgroud)
但问题是在低内存情况下永远不会调用此函数.我该怎么做才能调用这个函数.我需要在设备内存不足时提醒用户.
onLowMemory()是不是一个很大的帮助,因为它得到仅在整个系统运行内存和时间称为不中的情况下您的应用程序正在运行了它的可用堆空间.
所以我的答案是你不应该依赖onLowMemory()被调用.恕我直言,你的问题没有回调方法.
您可以定期轮询可用的堆空间,并检查是否内存不足.
Runtime.getRuntime().maxMemory();
Runtime.getRuntime().totalMemory();
Runtime.getRuntime().freeMemory();
Run Code Online (Sandbox Code Playgroud)
我的应用程序有很多图像,有时会因内存不足而崩溃
这部分不清楚,如果您的应用程序从互联网下载任何图像或最终用户从图库中选择图像并添加它?在这种情况下
或者更好的是,您可以使用任何算法自己从内存中删除图像(最近最少使用/查看怎么样?)
另一种情况是您的应用程序本身由于不需要的引用和泄漏而使用了太多内存。在这种情况下,您从未警告用户没有更多内存。有效使用内存只是您的责任...这种情况通常会出现主要是当
无论如何,警告用户内存不足是不明智的。程序员在编程时应该始终认为可以通过使用更少的内存来使应用程序变得更好。
该线程对于了解您的内存占用信息非常有用。
关于MAT工具的使用...
| 归档时间: |
|
| 查看次数: |
10495 次 |
| 最近记录: |