【发布时间】:2019-03-21 06:39:02
【问题描述】:
当前活动(设置活动)中的主题发生变化,但我必须重新启动其他后台活动才能应用新主题。我在想应该在设置活动中重新启动后台活动,但我找不到如何。
这是我的设置活动:
public class SettingsActivity extends FragmentActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
private SharedPreferences prefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SettingsHelper.onActivityCreateSetTheme(this);
getSupportFragmentManager()
.beginTransaction()
.replace(android.R.id.content, new SettingsFragment())
.commit();
prefs = PreferenceManager.getDefaultSharedPreferences(this);
}
@Override
protected void onResume() {
super.onResume();
prefs.registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onPause() {
super.onPause();
prefs.unregisterOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals("theme")) {
boolean isDark = prefs.getBoolean("theme", false);
prefs.edit().putBoolean("theme", isDark).apply();
SettingsHelper.changeToTheme(this);
}
}
【问题讨论】: