AIR for Android アプリケーションのメモリ リークを修正する方法を見つけようとしています。
この問題は、ローカルに保存された外部の SWF および mp4 ファイルをステージにロードして、次々と再生していることが原因のようです。アプリケーションがメモリからファイルを削除していないようで、ファイルを再生するたびにローカル ディレクトリからファイルを読み取るため、アプリはファイルをメモリにプッシュし続け、いっぱいになります。
子の SWF/mp4 ムービークリップをステージから削除した後に NULL に設定しようとしましたが (さまざまなオンライン ソースで示唆されているように)、うまくいかないようです。
次にSystem.gc();
、クリップが再生される直前に使用してみました (つまり、クリップ A を再生し、クリップ A が終了し、ガベージ コレクションを実行し、クリップ B が再生されます)。
そこで、このメモリリークを止める方法を考えようとしています。
私の考えは、各ムービークリップを配列に追加してから、それをループすることです。クリップが配列に格納されている場合、ローカル ディレクトリからクリップを再読み込みしないため、メモリに再追加されないため、これでうまくいくと思います。これは安全な仮定ですか?
このタイプのメモリリークに対抗する他の方法はありますか?
最後に、このメモリ リークが原因で、Android デバイスでストレス テストを行った場合、約 1 時間後にアプリが閉じてしまう可能性はどのくらいありますか? (エラーメッセージは表示されず、アプリは警告なしで閉じます)