1

我有一个包含 2 个活动的应用程序。第一个在启动时启动,并通过一个按钮使用 Intent 启动第二个活动。

Intent intent = new Intent(MainActivity.this, com.example.project.SomeActivity.class);
startActivityForResult(intent, 0);

在第二个活动中,我有一个相机和一些内存分配。

当我在第二个活动中按下“关闭”按钮时,我在相机上调用 Close 并完成活动。

    m_camera.Close(CameraEnum.FRONT.getCameraID());
    this.finish();
    System.gc();

当我第一次关闭活动并从第一个活动中调用它时,一切都很好,第二次也是如此 - 但是当我第三次打开它时 - 我在这一行出现内存不足错误:

m_data = new byte[4*width*height];

我得到的错误是:

05-19 14:22:51.440: E/dalvikvm-heap(31838): Out of memory on a 1228816-byte allocation.
...
05-19 14:42:42.174: E/AndroidRuntime(7345): java.lang.OutOfMemoryError

我可以找出为什么会发生这种情况。

有任何想法吗?

谢谢!

4

1 回答 1

0

好吧,找到了问题——它确实是由于持有对“上下文”对象的引用而导致的内存泄漏。发布后 - 应用程序不再崩溃。

于 2013-05-19T13:37:03.457 回答