基本上是设计问题——PreferenceActivity
应该让它实现OnSharedPreferenceChangeListener
还是应该在另一个类中定义这个功能——比如在内部类中?有什么理由让人们更喜欢另一种方法吗?
另外应该在哪里注册听众?我的意思是文档和常识onResume/onPause
分别要求注册/取消注册,但是看到无数的 注册,我只是想知道我是否遗漏了一些东西。 onCreate
此外,我不太确定取消注册失败(例如,这里可能不会调用取消注册,因为onStop
不保证会调用)一定会导致泄漏。所以如果我有例如
class MyPref extends PreferenceActivity implements
OnSharedPreferenceChangeListener {
SharedPreferences sharedPreferences;
// init sharedPreferences
onStart(){
sharedPreferences.registerOnSharedPreferenceChangeListener(this);
}
// no unregistration
}
MyPref
一旦我回到我的其他活动之一,这会泄漏实例吗?
最后 - 相同的考虑是否适用于OnPreferenceChangeListener
?
编辑:回到那个我看不到真正取消注册的方法OnPreferenceChangeListener
- 我是盲人吗?