Android OnSharedPreferenceChangeListener not called

Hey everyone,

i now had a problem with an OnSharedPreferenceChangeListener multiple times. The problem was: it just never got called. I had a PreferenceActivity to manage the settings and i wanted to get notified in my main Activity when something changed. But my listener never was called.

Recently i found the answer to that problem on StackOverflow. The thing is that the SharedPreference keeps its listeners in a WeakHashMap. Which leads to the inability to use a nested inner class a the listener since it will be garbage collected.

So the solution to that problem is just storing the listener in a private variable like this:

private OnSharedPreferenceChangeListener prefListener;

And everything will work just fine :)

Gr33tz Goddchen

Share

Tags: , ,

4 Antworten zu “Android OnSharedPreferenceChangeListener not called”

  1. W sagt:

    THANK YOU! It’s really dumb that that thing gets garbage collected. Seems kind of important.

    Thanks for the english too– I never would have found this otherwise.

  2. Florian sagt:

    Thank you!

  3. Shivan sagt:

    Hey great! I had the same problem… and here I found the solution. Thanks!

  4. platte sagt:

    Great!Thanks.I slove the problem by you method.

Hinterlasse eine Antwort