package com.example.activity; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v7.app.AppCompatActivity; import com.example.R; public class ExampleActivity extends AppCompatActivity implements OnSharedPreferenceChangeListener { private boolean mPreferencesChanged = false; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_example); // register listener PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this); } @Override public void onResume() { super.onResume(); // preferences have changed so refresh data if(mPreferencesChanged) { refreshData(); mPreferencesChanged = false; } } @Override public void onDestroy() { // unregister listener PreferenceManager.getDefaultSharedPreferences(this).unregisterOnSharedPreferenceChangeListener(this); super.onDestroy(); } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if(key.equals(getString(R.string.prefs_key_example))) { mPreferencesChanged = true; } } }