Я возился с этой проблемой в контексте попытки перезагрузить мое основное действие после изменения предпочтений в пользовательском PreferenceActivity и после некоторых проб и ошибок и чтения других ответов, вот что сработало для меня:
В своей PreferenceActivity я использую onBackPressed () для запуска своей MainActivity (MainActivity.class - это действие, к которому я возвращаюсь:
@Override
public void onBackPressed() {
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}
В моей MainActivity я называю свою ReferenceActivity (PreferenceSettings.class - это ReferenceActivity, которую я собираюсь выполнить через функцию startSettings () через атрибут onClick в моем XML-макете:
public void startSettings(View view){
Intent intent = new Intent(this, PreferenceSettings.class);
startActivity(intent);
finish();
}
Я использую это для перезапуска моей MainActivity, чтобы он снова запускал метод onCreate (), перезагружая (обновляя) мои представления с любыми изменениями, сделанными в моей PreferenceActivity. Это приводит к тому, что моя MainActivity завершает работу и выгружается, когда я запускаю свою ReferenceActivity, позволяя перезапускать ее с помощью кнопки «Назад», нажатой из моей PreferenceActivity. Затем я обновляю отображаемые значения с помощью метода onCreate (), который загружает начальные значения из моих SharedPreferences при создании MainActivity.
Надеюсь, это кому-нибудь поможет!