1

我几乎完成了我的应用程序。但是这里有一个问题让我困惑了很久,有时它出来了OutOfMemeryError Exception。它有时会出现,但并非总是如此。

所以,我想我的应用程序必须自己管理内存。但是如何管理呢?

4

4 回答 4

0

OutOfMemoryException是您可能遇到的最糟糕的问题(除非您尝试将 50MB 图像加载到 RAM 中。
基本上,处理这些问题的方法是使用内存分析工具并检查在 GC 时阻止您的内存清除的原因跑步。

就我而言,主要是以下问题:

  1. 循环引用

  2. 保存需要清除的数据,如重复实例。

  3. 太多单例运行。

  4. 对象的重复实例化。

尝试使用 MAT 并查看问题所在并优化您的代码。

对不起,我不能给出比这更好的了,这是可悲可悲的事实

于 2013-11-05T07:22:41.180 回答
0

当您对 Activity 的意图应该使用 Intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 时,我解决了我的问题案例 或者它会嗡嗡声

于 2013-11-05T06:50:56.867 回答
0

使用以下代码处理内存不足错误。

try{
}
catch (Throwable ex){
ex.printStackTrace();
if(ex instanceof OutOfMemoryError) {
// clear your memory
 }
 return null;
 }
于 2013-08-17T07:02:32.673 回答
0

首先检查您的应用程序是否有任何内存泄漏。为此有很多工具,例如 http://developer.android.com/tools/debugging/debugging-tracing.html或者您也可以使用 Eclipse Memory Analyzer Tool ( MAT )

否则,如果您的应用程序确实需要大量内存,那么您可以尝试在清单文件中使用“largeHeap”选项。

<application
    android:largeHeap="true"
    .
    .

希望能帮助到你!

于 2013-08-17T07:42:39.877 回答