1
我正在從用戶獲取IP,端口和設備名稱設置並在初始化對象時使用它們。但是,當我把設置,這些設置沒有得到更新的應用程序,直到我重新啓動應用程序。首選項沒有得到更新,直到應用程序重新啓動
這裏是我的設置文件 -
@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地址,並從使用這些首選項的應用內的其他活動發送數據。但活動仍在使用Old Prefs而不是New Prefs。再次,如果我重新啓動我的應用程序,數據將使用新設置發送。 –
@CommonsWare爲什麼我需要清單中的流程條目? –