1

AIR for Android アプリケーションのメモリ リークを修正する方法を見つけようとしています。

この問題は、ローカルに保存された外部の SWF および mp4 ファイルをステージにロードして、次々と再生していることが原因のようです。アプリケーションがメモリからファイルを削除していないようで、ファイルを再生するたびにローカル ディレクトリからファイルを読み取るため、アプリはファイルをメモリにプッシュし続け、いっぱいになります。

子の SWF/mp4 ムービークリップをステージから削除した後に NULL に設定しようとしましたが (さまざまなオンライン ソースで示唆されているように)、うまくいかないようです。

次にSystem.gc();、クリップが再生される直前に使用してみました (つまり、クリップ A を再生し、クリップ A が終了し、ガベージ コレクションを実行し、クリップ B が再生されます)。

そこで、このメモリリークを止める方法を考えようとしています。

私の考えは、各ムービークリップを配列に追加してから、それをループすることです。クリップが配列に格納されている場合、ローカル ディレクトリからクリップを再読み込みしないため、メモリに再追加されないため、これでうまくいくと思います。これは安全な仮定ですか?

このタイプのメモリリークに対抗する他の方法はありますか?

最後に、このメモリ リークが原因で、Android デバイスでストレス テストを行った場合、約 1 時間後にアプリが閉じてしまう可能性はどのくらいありますか? (エラーメッセージは表示されず、アプリは警告なしで閉じます)

4

0 に答える 0