我正在将某些数据从一个片段保存到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/

10-13 05:02