Accidently had background clearing every time a preference changed.
Also noticed that each context would register its own preference listener, which isn't required so it's staticly used.
If a preference is changed while loading a preference, it'll no longer create a possible infinite loop from onSharedPreferenceChanged, even though technically it should only happen if a default is set, but I see it better to do it this way.