SharedPreferences一直在WeakHashMap保持监听。所以不能用匿名的内部类作为监听器,因为一旦你离开当前的范围它将变成回收的目标。它将首先工作,但是最终,仍然要被回收,被从WeakHashMap移除然后停止工作。 在你的类中的一个位置引用一个监听器,这样就好了,提供你的类的实例也不会被销毁