4

複数の短いサウンド クリップを含む Android アプリを作成しています。現時点ではSoundPool、メニュー アクティビティによって 2 番目のアクティビティが開始されると、サウンド クリップをロードするために使用しています。私が抱えていると思われる問題は、このセカンダリ アクティビティが開始されると、サウンド クリップの読み込みによって複数のヒープ サイズのオーバーフローが発生し、しばらくするとアクティビティが実際に読み込まれることです (エミュレーターがエラーや強制終了を返すことはありません)。ここでヘルプを使用して、MediaPlayerこれらのヒープ サイズのオーバーフローが発生しないようにしますか?

また、現時点では、メニュー アクティビティは、(startActivityForResult()関数を使用して) 結果を待っている 2 番目のアクティビティを開始します。これは、メニュー アクティビティがメモリに保持されているだけでなく、2 番目のアクティビティがメモリにロードされていることを意味しますか? もしそうならfinish()、2番目のアクティビティが開始されたらメニューアクティビティを呼び出すことでメモリの問題を解決できますか(その後、ユーザーがメニューに戻りたいときにメニューアクティビティを再開しますか、それともまったく新しい一連の問題が発生しますか?) ?

4

1 に答える 1

5

はい、soundpoolはすべてのサウンドをメモリに保持します。メディアプレーヤーの単一のインスタンスは、おそらくここで見る必要があるすべてです。あなたはこれをするべきであり、あなたの記憶の問題は極端な手段に行かなくてもなくなるはずです。

于 2011-01-28T13:51:06.403 に答える