SharedPreferences putint方法不起作用


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提交行不通。提交时间是否错误?

在您进行更改的编辑器上执行commitapply

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();

最新更新