1

2 つのアクティビティを含むアプリがあります。最初のアクティビティは起動時に起動し、ボタンでインテントを使用して 2 番目のアクティビティを起動します。

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

2 番目のアクティビティでは、カメラといくつかのメモリ割り当てがあります。

2 番目のアクティビティで「閉じる」ボタンを押すと、カメラで Close を呼び出し、アクティビティを終了します。

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

初めてアクティビティを閉じて、最初のアクティビティからコールバックすると、2 回目もすべて問題ありませんが、3 回目に開くと、次の行でメモリ不足エラーが発生します。

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