Я беру настройки IP, Port и Device Name у пользователя и использую их при инициализации объекта. Однако, когда я устанавливаю настройки, эти настройки не обновляются в приложении, пока я не перезапущу приложение.Предпочтения не обновляются до перезапуска приложения
Вот мои Настройки Файл-
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.layout.settings);
SharedPreferences sp = getPreferenceScreen().getSharedPreferences();
EditTextPreference editTextPrefLAN = (EditTextPreference) findPreference("prefABCLan");
editTextPrefLAN
.setSummary(sp.getString("prefABCLan", "Set your LAN IP"));
EditTextPreference editTextPrefPort = (EditTextPreference) findPreference("prefABCPort");
editTextPrefPort
.setSummary(sp.getString("prefABCPort", "Set your port"));
EditTextPreference editTextPrefDeviceName = (EditTextPreference) findPreference("prefABCDeviceName");
editTextPrefDeviceName
.setSummary(sp.getString("prefABCDeviceName", "Set your device name"));
/*EditTextPreference editTextPrefScopeIP = (EditTextPreference) findPreference("prefScopeIP");
editTextPrefScopeIP
.setSummary(sp.getString("prefScopeIP", "Set your Scope IP"));
EditTextPreference editTextPrefScopeLogin = (EditTextPreference) findPreference("prefScopeLogin");
*/
}
protected void onResume() {
super.onResume();
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
}
protected void onStop() {
super.onStop();
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
}
protected void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.actionbar, menu);
return true;
}
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
Preference pref = findPreference(key);
if (pref instanceof EditTextPreference) {
EditTextPreference etp = (EditTextPreference) pref;
pref.setSummary(etp.getText());
}
}
Что мне нужно сделать в моем коде?
Во-первых, как вы определяете, что «эти настройки не обновляются в приложении»? Во-вторых, есть ли у вас какие-либо атрибуты 'android: process' в вашем манифесте? – CommonsWare
@CommonsWare Первоначально я вводил неправильный IP-адрес в своем приложении. Затем я изменяю, чтобы исправить IP и отправлять данные из другого действия внутри приложения, которое использует эти префы. Но Activity по-прежнему использует Old Prefs вместо New Prefs. И снова, если я перезапущу свое приложение, данные будут отправлены с использованием новых настроек. –
@CommonsWare, почему мне нужна запись процесса в манифесте? –