private boolean rightReviewTiming() {
int insertKitCnt = sharedPreferences.getInt("insert_kit_cnt",0);
insertKitCnt++;
sharedPreferences.edit().putInt("insert_kit_cnt", insertKitCnt);
sharedPreferences.edit().commit();
insertKitCnt = sharedPreferences.getInt("insert_kit_cnt", 0);
Log.d("ehhehe", "rightReviewTiming: " + insertKitCnt);
if ((insertKitCnt % 11 == 0) && (insertKitCnt % 2 == 0)) {
return true;
} else {
return false;
}
}
Я хочу обновить ключ insert_kit_cnt. Но его журнал всегда показывает «0». Если вы знаете, где проблема, пожалуйста, дайте мне знать об этом. Я думаю, может быть, insert_kit_cnt commit не работает. Время коммита неправильное?
Сделайте commit или apply в редакторе, в котором вы вносите изменения.
sharedPreferences.edit().putInt("insert_kit_cnt", insertKitCnt).apply();
Вы создаете две ссылки на редактор. Вам нужно использовать только одну ссылку на редактор:
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("insert_kit_cnt", insertKitCnt);
editor.apply();
Или в однострочном коде вы также можете сделать так:
sharedPreferences.edit().putInt("insert_kit_cnt", insertKitCnt).apply();
Попробуйте использовать
apply()вместоcommit()