Search code examples
androidandroid-preferencespreferencefragment

How to bind PreferenceFragment to back end?


Is it possible to send requests when user changes settings on PreferenceFragment? I don't need SharedPreferences feature, I just need to sync PreferenceFragment with back end.


Solution

  • Since it has method for registering listener: registerOnSharedPreferenceChangeListener(), you can do it via implementing SharedPreferences.OnSharedPreferenceChangeListener interface and registering prefs for changes listening, something like:

    @Override
    public void onResume() {
        super.onResume();
        getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
    }

    @Override public void onPause() { getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); super.onPause(); }

    @Override public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { // here you can implement back end pushes // http://square.github.io/retrofit/ is a good choice }