【发布时间】:2013-12-24 19:24:32
【问题描述】:
我正在从 url 上的文本文件中抓取一个字符串并将其保存到 sharedPreferences ...然后下次它抓取该字符串时,它将它与存储在共享首选项中的旧字符串进行比较,如果它不同,它会通知用户.
我从 url 获取字符串并保存在 sharedPreferences 中,但是当我尝试将它们与 if (x == y) 语句进行比较时,结果总是不一样;
这里是 onPostExecute()
protected void onPostExecute(String result) {
String Input;
String oldInput;
Input = result.toString();
oldInput = currentSavedSettings();
if (Input == oldInput){
Toast.makeText(MainActivity.this, "fixed", Toast.LENGTH_LONG).show();
} else {
savePrefs("CURRENT_SETTINGS_FILE", Input);
//the toasts were used to ensure that neither were returning null
Toast.makeText(MainActivity.this, oldInput, Toast.LENGTH_LONG).show();
Toast.makeText(MainActivity.this, Input, Toast.LENGTH_LONG).show();
// the following is commented out until I fix this issue
//createNotification();
}
}
以及获取旧的 CURRENT_SETTINGS_FILE 的 currentSavedSettings
private String currentSavedSettings() {
SharedPreferences sp =
PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
String result = sp.getString("CURRENT_SETTINGS_FILE", null);
return result;
}
为了更好地衡量,这是我用来保存 SharedPreference 的方法
private void savePrefs(String key, String value) {
SharedPreferences sp = PreferenceManager
.getDefaultSharedPreferences(MainActivity.this);
Editor edit = sp.edit();
edit.putString(key, value);
edit.commit();
}
【问题讨论】: