我正在为我的应用程序的Intro Slider使用SharedPreferences . 但是,我在这一行上收到错误:
class PrefManager {
private SharedPreferences pref;
private SharedPreferences.Editor editor;
private static final String PREF_NAME = "welcome";
private static final String IS_FIRST_TIME_LAUNCH = "IsFirstTimeLaunch";
PrefManager(Context context) {
int PRIVATE_MODE = 0;
pref = context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
editor = pref.edit();
}
void setFirstTimeLaunch(boolean isFirstTime) {
editor.putBoolean(IS_FIRST_TIME_LAUNCH, isFirstTime);
editor.commit();
}
boolean isFirstTimeLaunch() {
return pref.getBoolean(IS_FIRST_TIME_LAUNCH, true);
}
}
editor = pref.edit();
如果我在调用edit()后没有调用commit()或apply()会发生什么?
4 回答
您可以添加
@SuppressLint("CommitPrefEdits")
以忽略此消息 . 在我的情况下,我正在使用它,因为我想在我的 class 中使用相同的editor
字段 .如果不调用commit()或apply(),则不会保存更改 .
Commit()将更改同步并直接写入文件
Apply()立即将更改写入内存中的SharedPreferences,但开始异步提交到磁盘
Simple Method
没有 .