PreferenceActivity中的Resume重新加载首选项

在我的应用程序中, PreferenceActivity未打开时可能会更改一些设置,而我遇到的一个问题是在onCreate调用了addPreferencesFromResource ,所以说,我打开PreferenceActivity ,然后从此处进入另一个屏幕,然后做一些改变设置的东西,然后点击返回键回到PreferenceActivity ,然后某些设置在布局上没有改变。

那么,如何在每次onStart() onResume (或onStart() )时重新加载所有的Preferences而不重复布局呢?

Solutions Collecting From Web of "PreferenceActivity中的Resume重新加载首选项"

编辑:此解决scheme将仅适用于API 11 +。

我不知道我完全理解你的问题,但你可以添加一个调用重新创build()到活动的onResume,从我的理解有活动贯穿整个生命周期了。

为了确保只有在实际上有脏数据时才这样做,我会在SharedPreferences中设置一个标志,让您的活动在onResume()中知道它需要重新创build。

  public void onResume(){ super.onResume(); SharedPreferences pref = getApplicationContext().getSharedPreferences(Constants.PREFS_NAME, Context.MODE_PRIVATE); if(pref.getBoolean("isDirtyPrefs", true)) recreate(); } 

我有一个类似的问题。 没有find一个简单的方法来使我的PreferenceActivity自我刷新,我的解决scheme是将其添加到我的PreferenceActivity:

 /** * Called when activity leaves the foreground */ protected void onStop() { super.onStop(); finish(); } 

这将导致Prefs屏幕下次启动时从SharedPreferences重新加载。 不用说,如果您希望能够通过使用后退button返回到您的首选项屏幕,则此方法将不起作用。