我正在将某些数据从一个片段保存到SharedPreference,并希望在其他片段中使用这些数据。但是我只想成功保存SharedPreferences才执行片段事务,否则其他片段将无法检索数据(因为使用那些SharedPreference值检索数据)。
我的代码:
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{
... ... ... ... ... ... ... ... ...
public void setSharedPref(String key, String val) {
SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString(key, val);
editor.commit();
}
public String fetchSharedPref(String key) {
SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
String val = sharedPref.getString(key, Constant.SHARED_PREF_DEFAULT_MSN);
return val;
}
}
如何确定SharedPreferences成功保存?
有什么方法可以实现仅在SharedPreferences成功保存后才被调用的回调吗?
最佳答案
从docs。
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();
然后去检查
commit()
方法here。返回类型:布尔值
说明:如果新值已成功写入持久性存储,则返回true。
关于android - 我怎么知道Android SharedPreferences已成功保存?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43631942/