Android:应用程序终止后,SoundPool无法正常工作

时间:2012-04-15 22:28:37

标签: android soundpool

我注意到一个奇怪的问题:我的应用使用SoundPool播放声音。当我在播放某些声音时用后退键终止应用程序时,下次启动应用程序时SoundPool将无法正常工作(即使我启动另一个使用SoundPool的应用程序,声音无效,我必须重新启动设备让SoundPool再次运行。)

我找到了一个有用的解决方案:我必须在onDestroy()方法中停止所有播放声音,然后调用SoundPool.release()。

问题是,当用户使用任务管理器杀死应用程序时,onDestroy不会被调用,我无法停止/释放声音。有人知道吗

a)我怎么能发现App被杀了 b)使用另一种机制来阻止SoundPool在App终止后无法正常工作

使用Android 2.3.6在三星Galaxy S Plus上测试

1 个答案:

答案 0 :(得分:2)

SurfaceView具有可覆盖的方法,例如surfaceCreatedsurfaceDestroyed。另外,如果您使用错误的release,则应调用soundPool.stop(streamId),而streamIdsoundPool.play方法返回的整数,而不是调用streamId。循环的声音不会停止。我有同样的问题,即使用另一种我没有循环的声音的streamId