在sharedpreference中同时使用apply()和commit()

时间:2018-12-31 22:33:46

标签: android performance android-studio android-layout sharedpreferences

sharedPreferencesEditor.putStringSet("Saved", set).apply();
                sharedPreferencesEditor.commit();
                if(sharedPreferencesEditor.commit()){
                    Toast.makeText(BankActivity.this, "Saved Successfully", Toast.LENGTH_SHORT).show();
                }

是否最好同时使用apply()和commit()方法在共享首选项中定期更改文本?

2 个答案:

答案 0 :(得分:1)

不,您应该一个或另一个。这实际上取决于您正在执行的操作,但是通常您要使用.apply()

.apply()稍后将在后台应用您的更改;而.commit()会将您的更改立即应用到当前线程。

因此,如果您需要立即保存某些内容,并且不介意阻塞UI线程,则可以使用.commit(),但是.apply()在95%的情况下效果更好。

答案 1 :(得分:1)

  • commit()是瞬时的,但是执行磁盘写入。
  • commit()-返回布尔值。
  • 如果保存成功,
  • commit()返回true,否则返回false并阻止 UI线程,直到完成操作为止。
  • apply()已添加,因为android开发团队注意到大多数人 注意到返回值,因此套用更快。
  • apply()是异步的。