所以我正在使用一个使用大量声音的应用程序,将来我担心我会遇到内存泄漏问题。我的问题......无论如何,我在on Pause方法中释放所有Sound Pool资源,然后在on Resume方法中重新加载它们?我问这个是因为当我在第一个活动中释放声音池资源并转到第二个活动时,每次回到第一个活动时,我的声音池资源都没有加载到Resume方法中。
以下是buttonclick表示声音池的代码:
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
if (buttonclick != null) {
buttonclick.release();}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if (buttonclick == null){buttonclick.load(this, R.raw.buttonclick, 1);}
}
答案 0 :(得分:1)
看起来你的buttonclick永远不会为null所以它永远不会重新加载
可能会改为:
if (buttonclick != null){buttonclick.load(this, R.raw.buttonclick, 1);
如果这不起作用,请尝试为引用分配null,并在resume上重新创建声音池