当你使用playPool的play方法时,该方法会自动创建一个单独的线程来播放声音(特别是如果你将它无限循环),还是使用UI线程来播放声音?
我只是问,因为我的应用程序随机崩溃,我认为这是因为我过度工作UI线程。考虑将我的soundPool循环放在具有自己进程的服务上。
答案 0 :(得分:1)
SoundPool可能会创建多个线程,具体取决于它的配置方式。查看应用程序运行时出现的线程集(使用adb shell ps -t
或DDMS'线程视图)。你会看到“SoundPool”,“SoundPoolThread”和“AudioTrack”。
“过度工作”一个线程并不是真正的崩溃原因。您可能希望在此处发布新问题,其中包含崩溃详细信息(尤其是logcat输出);也许有人可以发现它失败的原因。