Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android new Intent内存泄漏/内存不足_Android_Memory Leaks_Out Of Memory_Android Memory - Fatal编程技术网

Android new Intent内存泄漏/内存不足

Android new Intent内存泄漏/内存不足,android,memory-leaks,out-of-memory,android-memory,Android,Memory Leaks,Out Of Memory,Android Memory,我有一个包含2个活动的应用程序。第一个活动在启动时启动,并使用一个按钮启动第二个活动 Intent intent = new Intent(MainActivity.this, com.example.project.SomeActivity.class); startActivityForResult(intent, 0); 在第二个活动中,我有一个摄像头和一些内存分配 当我在第二个活动中按下“关闭”按钮时,我会在摄像机上呼叫“关闭”,并完成活动 m_camera.Close(Cam

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

Intent intent = new Intent(MainActivity.this, com.example.project.SomeActivity.class);
startActivityForResult(intent, 0);
在第二个活动中,我有一个摄像头和一些内存分配

当我在第二个活动中按下“关闭”按钮时,我会在摄像机上呼叫“关闭”,并完成活动

    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
我可以找出为什么会发生这种情况

有什么想法吗


谢谢

好吧,我们发现了问题-这确实是由于持有对“Context”对象的引用而导致的内存泄漏。
发布后-应用程序不再崩溃。

m_data=新字节[4*宽度*高度];那可能是很多记忆。您正在管理大位图吗?它是位图的内存。但是为什么它只在第三次运行时才会崩溃呢?你可能有内存泄漏。由于某种原因,引用被保留,无法GC收集。如果我在活动中调用this.finish(),如果看不到代码,就无法查找错误所在-它不会清除所有内存吗?它会完成活动。但是,如果引用被保留,则活动不会从内存中释放。我似乎也会遇到同样的错误。你是怎么发布的?