我的自定义首选项消失后如何清理

时间:2014-06-02 11:05:16

标签: android android-activity preference

我的应用中有一个使用Preference的自定义SoundPool(它是一个音量控制滑块,可在滑块位置发生变化时播放样本。)

当我的Preference停止显示自己清理后,我想在SoundPool上调用unload()。有一个好地方吗?在Activity我将其放入onDestroy()

我对onPrepareForRemoval()进行了猜测,但似乎没有被调用。

1 个答案:

答案 0 :(得分:2)

最后,我无法找到一个可靠的地方来清理偏好中的资源。我采用的方法是使用自定义PreferenceActivity,并在那里管理其子Preferences的SoundPool资源。因此,在PreferenceActivity的onCreate()中创建SoundPool,并在onDestroy()中关闭它,就像在任何活动中使用的SoundPool一样。

(我的孩子偏好设法通过简单地将他们的Context对象强制转换为我的自定义PreferenceActivity并使用getter来抓住SoundPool。我知道手动转换Context这样有点不愉快,但我不能看看这个自定义偏好设置的上下文赢得可能是我的自定义PreferenceActivity的任何地方......)