3

こんにちは私はプロジェクトでMuPdfライブラリを使用してドキュメントを表示しています。問題は、タブレットで11インチのアクティビティで3〜7個のドキュメントを開くと、メモリがオーバーフローすることです。新しいドキュメントをロードすると、前のドキュメントへのすべての参照が破棄されますが、メモリからのドキュメントの画像は削除されません。オブジェクトは、10〜12メガバイトのメモリイメージに作成されます。7インチのサイズのタブレットでは、この問題は発生しません。

多分誰かがこの問題に遭遇しましたか?

4

4 に答える 4

2

この問題は、PageView.java のメソッドでrecycle()bitmap を呼び出すことで解決されます。relaeseBitmaps()

public void releaseBitmaps() {
        reinit();
        mEntireBm.recycle();
        mPatchBm.recycle();
        mEntireBm = null;
        mPatchBm = null;
    }
于 2014-02-28T06:24:51.203 に答える
0

PageView.java でガベージ コレクターを強制する次のコードを追加しましたが、これまでのところ問題なく動作しているようです。

if (mEntireBm == null || mEntireBm.getWidth() != newSize.x
                              || mEntireBm.getHeight() != newSize.y) {
            mEntireBm = Bitmap.createBitmap(mSize.x, mSize.y, Bitmap.Config.ARGB_8888);
            System.gc();//Added
            Runtime.getRuntime().gc();//Added
        }

編集済み:ファイルを数回開いた後にクラッシュする

于 2012-07-31T08:52:05.400 に答える