Ладно, сегодня вечером я только что задал вопрос о том, чтобы дать пользователям кнопку для сброса настроек Live Wallpaper к их настройкам по умолчанию.Я понял это, но нажатие кнопки фактически не вызывает OnSharedPreferenceChanged до тех пор, пока экран настроек не будет закрыт и вновь открыт, или пока сами живые обои не будут закрыты и открыты.Вот код для кнопки, которая очищает настройки:
public boolean onPreferenceClick(Preference preference) {
AlertDialog alertDialog = new AlertDialog.Builder(mContext).create();
alertDialog.setMessage("Are you sure you want to reset all settings to default?");
alertDialog.setCancelable(true);
alertDialog.setButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SharedPreferences settings = getPreferenceManager().getSharedPreferences();
SharedPreferences.Editor editor = settings.edit();
editor.clear();
editor.commit();
} });
alertDialog.setButton2("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
} });
alertDialog.show();
return false;
}
});
Как я могу заставить эти настройки применяться немедленно (без использования apply () вместо commit (). Только 2 моих пользователя находятся на уровне API)9 или выше).Спасибо!