我使用SharedPreference来跟踪使用的字符,字符带来的点数以及用户拥有的字符数和后两个字符串联在一个字符串中,我追加拆分以获取其中一个字符串值(并在以后再次附加)。但是,我并不确定我尝试更新数据的方式是如何完成的。我真的很感激听到一些意见。 以下是保存共享首选项的代码:
SharedPreferences aSharedPref = getSharedPreferences(Aprefs, Context.MODE_PRIVATE);
int[] aData = new int[2];
aData[0] = 3;
aData[1] = 0;
StringBuilder strA = new StringBuilder();
for (int i = 0; i < aData.length; i++) {
strA.append(aData[i]).append(",");
}
aSharedPref.edit().putString("A", strA.toString());
aSharedPref.edit().apply();`
我在哪里检索它来更新它:
SharedPreferences aSharedPref = getSharedPreferences(Aprefs, Context.MODE_PRIVATE);
String dataA = aSharedPref.getString("A", "");
StringTokenizer stA = new StringTokenizer(dataA, ",");
int[] listA = new int[2];
for (int i = 0; i < 2; i++) {
listA[i] = Integer.parseInt(stA.nextToken());
}
listA[1] = listA[1] + 1;
StringBuilder strA = new StringBuilder();
for (int i = 0; i < listA.length; i++) {
strA.append(listA[i]).append(",");
}
aSharedPref.edit().putString("A", strA.toString());
aSharedPref.edit().apply();
还有一个关于apply()和commit()的问题,我收集的提交会立即将数据写入持久存储,而apply会在后台处理它。因此,在保存我计划在整个应用程序中更新的数据时,我使用哪一个。