4

Androidのドキュメントによると、SoundPool.unload戻り値

アンロードされたばかりの場合は true、以前にアンロードされた場合は false

SoundPool を作成し、5 つのサウンドをロードして、関連する 5 つのサウンド ID を保存します。次に、アクティビティを終了する前にunload、これらの ID ごとに呼び出し、最後に を呼び出しreleaseます。私が経験しているのは次のとおりです。

  • ある順序 (マップから返されたもの) で各 ID に対して unload を呼び出すと、体系的に ID 1..4 に対して false を受け取り、ID 5 に対して true を受け取ります。

  • ロードされた ID と同じ順序 (1 から 5) で unload を呼び出すと、体系的にすべての ID に対して false を受け取ります。

  • ロード時とは逆の 5 対 1 の順序でアンロードを呼び出すと、体系的に ID 2 ~ 5 に対して true を受け取り、ID 1 に対して false を受け取ります。

なぜこれが起こっているのか、そしてそれがtrueを返すようにする方法を知っている人はいますか? 私の懸念は、リソースを適切にクリアできず、サウンドを何度もロード/アンロードした後にメモリの問題が発生することです。

4

0 に答える 0