我正在创建一个涉及多个短声道剪辑的Android应用.目前,我正在使用SoundPool在菜单活动开始第二个活动时加载我的声音片段.我似乎遇到的问题是,一旦这个辅助活动开始,声音片段的加载会导致多个堆大小溢出,然后在一点之后活动实际加载(模拟器从不给出错误或强制退出).使用MediaPlayer会帮助我在这里保持这些堆大小溢出吗?
此外,此时,菜单活动启动第二个活动,等待结果(使用startActivityForResult()函数).这是否意味着菜单活动被保存在内存中以及将第二个活动加载到内存中?如果是这样,我可以通过在启动第二个菜单活动时调用菜单活动上的finish()帮助解决我的内存问题(然后当用户希望返回菜单时重新启动菜单活动,或者这会带来一整套新的问题是什么?)?
解决方法:
是的,soundpool会将所有声音保留在内存中.单个媒体播放器实例可能就是你需要的全部内容see here.你应该这样做,你的记忆问题应该消失,而不必采取任何极端措施.