edit: this solution will only work for API 11 +.
I'm not sure I fully understand your problem, but you can add a call to recreate () in onResume activity, which, as I understand it, goes through the entire life cycle again.
To make sure that you only do this when there is actually dirty data, I would set a flag in SharedPreferences, which allows your activity to know in onResume () that it needs to be recreated.
public void onResume(){ super.onResume(); SharedPreferences pref = getApplicationContext().getSharedPreferences(Constants.PREFS_NAME, Context.MODE_PRIVATE); if(pref.getBoolean("isDirtyPrefs", true)) recreate(); }
Joeallouz
source share