如何处理android中的内存不足异常

时间:2016-06-17 13:16:47

标签: android

加载图片时出现内存异常

String filePath = Environment.getExternalStorageDirectory()
                .getAbsolutePath() + File.separator + "/Omoto Images/background image.jpg";
        Bitmap bmp = BitmapFactory.decodeFile(filePath);
        page4image.setImageBitmap(bmp);

以上代码用于从内部存储加载图像

2 个答案:

答案 0 :(得分:1)

您可以使用AndroidManifest中的 largeheap =“true”来增加应用程序的堆内存。

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true">

  </application>

但是,除非需要,否则不宜使用它。

官方文件陈述

是否应使用大型Dalvik堆创建应用程序的进程。这适用于为应用程序创建的所有进程。 它仅适用于加载到进程中的第一个应用程序;如果您使用共享用户ID以允许多个应用程序使用进程,则它们都必须一致地使用此选项,否则它们将具有不可预测的结果。 大多数应用程序不应该需要这个,而应该专注于减少其整体内存使用量以提高性能。启用此功能也不能保证可用内存的固定增加,因为某些设备受其总可用内存的限制。

答案 1 :(得分:0)

您不应该处理OutOfMemory异常。这里描述了很好的解释:Catching java.lang.OutOfMemoryError?